Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual
ObjectId[]
return một ObjectID mới. Objectid 12 byte bao gồm:Returns a new ObjectId. The 12-byte ObjectId consists of:
Một dấu thời gian 4 byte, đại diện cho sự sáng tạo của Objectid, được đo bằng giây kể từ thời đại unix.
Giá trị ngẫu nhiên 5 byte được tạo một lần cho mỗi quá trình. Giá trị ngẫu nhiên này là duy nhất cho máy và quy trình.
Bộ đếm tăng 3 byte, khởi tạo thành một giá trị ngẫu nhiên.
Mặc dù bản thân định dạng BSON là ít endian, các giá trị dấu thời gian và bộ đếm là lớn, nhưng các byte quan trọng nhất xuất hiện đầu tiên trong chuỗi byte.
Nếu một giá trị số nguyên được sử dụng để tạo ObjectID, số nguyên sẽ thay thế dấu thời gian.
ObjectId[]
có thể chấp nhận một trong các đầu vào sau: can accept one
of the following inputs:
| Không bắt buộc. Một giá trị chuỗi thập lục phân 24 ký tự cho ObjectID mới. |
| Không bắt buộc. Giá trị số nguyên, tính bằng giây, được thêm vào Epoch Unix để tạo dấu thời gian mới.Unix epoch to create the new timestamp. |
ObjectId[]
có thuộc tính và phương thức sau: has the following attribute and methods:
y = ObjectId["507f191e810c19729de860ea"] | Không bắt buộc. Một giá trị chuỗi thập lục phân 24 ký tự cho ObjectID mới. |
y = ObjectId["507f191e810c19729de860ea"] | Không bắt buộc. Giá trị số nguyên, tính bằng giây, được thêm vào Epoch Unix để tạo dấu thời gian mới. |
y = ObjectId["507f191e810c19729de860ea"] |
|
y = ObjectId["507f191e810c19729de860ea"] | Trả về biểu diễn chuỗi thập lục phân của đối tượng. |
Trả về phần dấu thời gian của đối tượng là một ngày.ObjectId[]
with no argument:
Trả về biểu diễn JavaScript dưới dạng một chuỗi theo nghĩa đen "
y = ObjectId["507f191e810c19729de860ea"]
4".ObjectId["507f1f77bcf86cd799439011"]
Trả về biểu diễn của đối tượng dưới dạng chuỗi thập lục phân. Chuỗi được trả về là thuộc tính
y = ObjectId["507f191e810c19729de860ea"]
1.ObjectId[]
with a unique hexadecimal string:y = ObjectId["507f191e810c19729de860ea"]
Để tạo một ObjectID mới, hãy sử dụng ObjectId[]
mà không có đối số:
ObjectId["507f191e810c19729de860ea"]
Trong ví dụ này, giá trị của
y = ObjectId["507f191e810c19729de860ea"]
8 là:ObjectId["507f191e810c19729de860ea"].str
Để tạo một ObjectID mới bằng cách sử dụng ObjectId[]
với chuỗi thập lục phân duy nhất:
Trong ví dụ này, giá trị của
ObjectId["507f191e810c19729de860ea"]
0 sẽ là:newObjectId = ObjectId[32]
Truy cập thuộc tính
y = ObjectId["507f191e810c19729de860ea"]
1 của đối tượng ObjectId[]
, như sau:ObjectId["00000020f51bb4362eee2a4d"]
Hoạt động này sẽ trả về chuỗi thập lục phân sau:Unix epoch. In this example
ObjectId["507f191e810c19729de860ea"]
3 seconds, represented in hexadecimal as ObjectId["507f191e810c19729de860ea"]
4, are added. A five byte random element and a three byte counter make up the rest of the ObjectId.Tạo một ObjectID mới bằng cách sử dụng một số nguyên.
ObjectID giống với:
Tại sao mặc định ObjectId["507f191e810c19729de860ea"]
5 là chuỗi hex 24 ký tự?
ObjectId["507f191e810c19729de860ea"]
Định danh duy nhất mặc định được tạo dưới dạng khóa chính [
ObjectId["507f191e810c19729de860ea"]
5] cho tài liệu MongoDB là một ObjectID. Đây là giá trị nhị phân 12 byte thường được biểu diễn dưới dạng chuỗi HEX 24 ký tự và một trong các loại trường tiêu chuẩn được hỗ trợ bởi thông số kỹ thuật của MongoDB BSON.12 byte của một ObjectID được xây dựng bằng cách sử dụng:
- Giá trị 4 byte đại diện cho các giây kể từ kỷ nguyên unix
- Mã định danh máy 3 byte
- ID quy trình 2 byte
- Bộ đếm 3 byte [bắt đầu với giá trị ngẫu nhiên]
Tầm quan trọng của một ObjectID là gì?
ObjectIds [hoặc các định danh tương tự được tạo theo công thức GUID] cho phép các định danh duy nhất được tạo độc lập trong một hệ thống phân tán.
Khả năng tạo độc lập ID duy nhất trở nên rất quan trọng khi bạn mở rộng lên nhiều máy chủ ứng dụng [hoặc có thể là nhiều nút cơ sở dữ liệu trong cụm bị chia cắt]. Bạn không muốn có một nút cổ chai phối hợp trung tâm như một bộ đếm trình tự [ví dụ: như bạn có thể có khóa chính tự động khởi động] và bạn sẽ muốn chèn các tài liệu mới mà không có rủi ro rằng một định danh mới sẽ trở thành một nhân bản.
Một ObjectID thường được tạo bởi trình điều khiển máy khách MongoDB của bạn, nhưng cũng có thể được tạo trên máy chủ MongoDB nếu trình điều khiển máy khách hoặc mã ứng dụng của bạn hoặc chưa thêm trường
ObjectId["507f191e810c19729de860ea"]
5.Tôi có phải sử dụng ObjectID mặc định không?
Không. Nếu bạn có một mã định danh duy nhất phù hợp hơn để sử dụng, bạn luôn có thể cung cấp giá trị của riêng mình cho
ObjectId["507f191e810c19729de860ea"]
5. Đây có thể là một giá trị đơn hoặc giá trị tổng hợp bằng nhiều trường.Các ràng buộc chính trên các giá trị
ObjectId["507f191e810c19729de860ea"]
5 là chúng phải là duy nhất cho một bộ sưu tập và bạn không thể cập nhật hoặc xóa ObjectId["507f191e810c19729de860ea"]
5 cho một tài liệu hiện có.