Id đối tượng mongodb được tạo như thế nào?

Mỗi tài liệu trong bộ sưu tập có một trường “_id” được sử dụng để xác định duy nhất tài liệu trong một bộ sưu tập cụ thể, trường này đóng vai trò là khóa chính cho các tài liệu trong bộ sưu tập. Trường “_id” có thể được sử dụng ở bất kỳ định dạng nào và định dạng mặc định là ObjectId của tài liệu

ObjectID là loại Trường BSON 12 byte

  • 4 byte đầu tiên biểu thị Dấu thời gian Unix của tài liệu
  • 3 byte tiếp theo là Id máy mà máy chủ MongoDB đang chạy
  • 2 byte tiếp theo là process id
  • Trường cuối cùng là 3 byte được sử dụng để tăng objectid

Id đối tượng mongodb được tạo như thế nào?

Định dạng của ObjectId

ObjectId(<hexadecimal>)

ObjectId chấp nhận một tham số là ObjectId thập lục phân tùy chọn trong Chuỗi

Chúng tôi có thể cung cấp ObjectId của riêng mình cho tài liệu nhưng nó phải là duy nhất

*db.<collectionname>.insertOne({"_id":"231231"})

Thí dụ

cơ sở dữ liệu. gfg

Bộ sưu tập. hoc_gfg

Id đối tượng mongodb được tạo như thế nào?

Phương thức của ObjectId

  1. str. Trả về định dạng chuỗi thập lục phân của ObjectId
  2. ID đối tượng. lấy Dấu thời gian(). Nó trả về phần dấu thời gian của đối tượng dưới dạng Ngày
  3. ID đối tượng. giá trị của(). Nó trả về định dạng thập lục phân của một String Literal đã cho
  4. ID đối tượng. toString(). Phương thức này trả về ObjectId ở định dạng Chuỗi trong biểu diễn javascript

1. Tạo ObjectId. Để tạo ObjectId mới của tài liệu cụ thể

newObjectId = ObjectId()

đầu ra

ObjectId(“5f92cbf10cf217478ba93561”)

Id đối tượng mongodb được tạo như thế nào?

2. Dấu thời gian của ObjectID. Nó trả về thông tin dấu thời gian của đối tượng dưới dạng Ngày ở định dạng ISO

Trang chủ > Trường _id của MongoDB là gì và cách sử dụng nó

Id đối tượng mongodb được tạo như thế nào?

Trường _id của MongoDB là nền tảng cho mọi bộ sưu tập trong MongoDB và theo mặc định, trường này có một số thuộc tính hữu ích mà người dùng có thể tận dụng khi quen với cách tạo _id. Việc hiểu hành vi mặc định của trường cũng như các ưu điểm và cạm bẫy liên quan đến trường có thể hữu ích cho việc quản lý các bộ sưu tập của bạn cũng như hiểu khi nào nên ghi đè lên nó

MongoDB ObjectID là gì?

Như tài liệu MongoDB giải thích, "ObjectId nhỏ, có khả năng là duy nhất, tạo nhanh và có thứ tự. " Trường _id là Trường loại BSON 12 byte được tạo thành từ một số chuỗi 2-4 byte và là quy ước đặt tên/mã định danh duy nhất mà MongoDB sử dụng trên tất cả nội dung của nó. Mỗi chuỗi đại diện và chỉ định một khía cạnh cụ thể của danh tính của tài liệu

MongoDB ObjectID hoạt động như thế nào?

Về mặt kiến ​​trúc, theo mặc định, trường _id là một ObjectID, một trong các loại BSON của MongoDB. ObjectID là khóa chính cho tài liệu được lưu trữ và được tạo tự động khi tạo tài liệu mới trong bộ sưu tập. Các giá trị sau tạo thành tổ hợp 12 byte đầy đủ của mọi _ID (được trích dẫn từ tài liệu của MongoDB)
  • "một giá trị 4 byte biểu thị số giây kể từ kỷ nguyên Unix,
  • mã định danh máy 3 byte,
  • id tiến trình 2 byte và bộ đếm 3 byte, bắt đầu bằng một giá trị ngẫu nhiên. "
Đây cũng là một số đặc điểm chính của trường _id mà bạn nên biết
  • _id là khóa chính trên các phần tử trong bộ sưu tập;
  • _id được lập chỉ mục tự động. Tra cứu chỉ định { _id. } tham khảo chỉ mục _id như hướng dẫn của họ
  • Người dùng cũng có thể ghi đè _id thành một thứ khác ngoài kiểu dữ liệu ObjectID, nếu muốn

MongoDB ObjectID có phải là duy nhất không?

Theo MongoDB, ObjectID có thể được coi là duy nhất trên toàn cầu. Chín byte đầu tiên trong MongoDB _ID đảm bảo tính duy nhất của nó trên các máy và quy trình, liên quan đến một giây;

Có trường nào mà tất cả tài liệu trong MongoDB phải có không?

Tất cả tài liệu trong MongoDB phải có trường _id được điền. Nếu một tài liệu chưa được gán giá trị _id, MongoDB sẽ tự động tạo một giá trị

Các lệnh MongoDB quan trọng cho ObjectID

Nhờ tính chất phổ biến, bắt buộc của trường _id, người dùng có thể thực hiện một số thao tác để đơn giản hóa việc tổ chức và xử lý tài liệu của mình

MongoDB lấy dấu thời gian từ _id

Người dùng sử dụng ObjectID mặc định có thể truy cập vào quá trình tạo dấu thời gian của họ bằng lệnh getTimestamp(), cung cấp một phương pháp dễ dàng và đáng tin cậy để xem chính xác thời điểm tài liệu được tạo. Ngoài ra, với một chút tính toán phía máy khách, bạn có thể tận dụng dấu thời gian tích hợp để tìm tài liệu dựa trên thời gian chèn

Thứ tự MongoDB theo Dấu thời gian

Tương tự, vì dấu thời gian được bao gồm trong quá trình tạo ID, nên việc sắp xếp theo _id (hoặc bất kỳ trường ObjectID MongoDB nào) cũng sẽ sắp xếp tài liệu của bạn theo thời điểm chúng được tạo. Tuy nhiên, phương pháp sắp xếp này không thể hiện thời gian chèn nghiêm ngặt hoặc chính xác—các thành phần khác của ID có thể phát huy tác dụng ở đây, khiến thứ tự phản ánh các biến khác thay vì chỉ thời gian tạo

Bạn có thể thay thế _id trong MongoDB không?

Trường _id là bất biến—nghĩa là, khi một tài liệu tồn tại trong hệ thống MongoDB của bạn, theo định nghĩa, nó đã được gán một _id và bạn không thể thay đổi hoặc cập nhật khóa chính của nó. Như đã nói, _id có thể được ghi đè khi bạn chèn tài liệu mới, nhưng theo mặc định, nó sẽ được điền bằng một ObjectID. Việc ghi đè trường _id cho một tài liệu có thể hữu ích, nhưng khi làm như vậy, bạn cần đảm bảo các giá trị cho mỗi tài liệu là duy nhất

Mẹo đối tượng MongoDB

Do các yếu tố và thuộc tính của trường _id, có (ít nhất. ) hai điều cần cảnh giác khi xử lý ObjectID
  1. Hãy cẩn thận khi phân đoạn với chỉ mục _id—vì ObjectID chứa dấu thời gian, chúng được tạo theo thứ tự tăng dần. Do đó, nếu bạn phân tách một bộ sưu tập theo _id, hãy đảm bảo bạn sử dụng phân đoạn băm. Nếu không, tất cả các phần chèn mới sẽ chuyển đến một phân đoạn duy nhất. Đây là vấn đề mà những người mới bắt đầu sử dụng MongoDB thường gặp phải nếu không được cảnh báo, đây là hành vi mặc định. Tìm hiểu thêm về kiến ​​thức cơ bản về sharding trong MongoDB trong hướng dẫn này
  2. Ghi đè trường _id có nghĩa là bạn sẽ cần tạo một giá trị duy nhất cho tài liệu của mình. Mặc dù bạn có thể sử dụng UUID hoặc một số mã định danh duy nhất khác cho ứng dụng của mình, nhưng tốt nhất bạn nên cho phép MongoDB sử dụng giá trị mặc định của nó nếu bạn không chắc chắn trường thay thế của mình là duy nhất
Id đối tượng mongodb được tạo như thế nào?

Các tài nguyên khác để cải thiện hiệu suất MongoDB

MongoDB users are well known for valuing the database's capacity for growth. After all, the system's tagline is "for giant ideas," and for good reason. The system supports extreme scalability and has been designed to store exceptionally large numbers of documents.  Hopefully this guide on MongoDB ObjectID has helped you understand its makeup and characteristics, so you can better use the ways your database is organizing your documents. Check out other popular MongoDB guides and resources designed to help you more easily optimize and fine tune database performance:

ID đối tượng được tạo như thế nào?

Về cơ bản, ObjectId được coi là khóa chính trong mọi bộ sưu tập MongoDB. Nó được tạo tự động bất cứ khi nào chúng tôi tạo tài liệu mới trong bộ sưu tập mới . Nó dựa trên giá trị thập lục phân 12 byte như bạn có thể quan sát theo cú pháp sau.

Loại ID đối tượng MongoDB là gì?

ObjectId là một loại dữ liệu nằm trong Đặc tả BSON mà MongoDB sử dụng để lưu trữ dữ liệu. Đó là biểu diễn nhị phân của JSON và bao gồm các loại dữ liệu khác ngoài những loại được xác định trong JSON. Đây là một loại dữ liệu mạnh mẽ, cực kỳ hữu ích như một mã định danh duy nhất trong Tài liệu MongoDB.

ID đối tượng bao gồm những gì?

ObjectId 12 byte bao gồm. Dấu thời gian 4 byte, thể hiện quá trình tạo ObjectId, được tính bằng giây kể từ kỷ nguyên Unix. Một giá trị ngẫu nhiên 5 byte được tạo một lần cho mỗi quy trình . Giá trị ngẫu nhiên này là duy nhất cho máy và quy trình.