Là mongodb objectid uuid?

Đã thực hiện một số công việc với cả UUID/UUID và MongoDB ObjectID,

Tôi muốn đề xuất một hệ thống chung để qua lại giữa hai

Có những điểm tương đồng giữa UUID và ObjectID và UUID có thêm 4 byte

và một cách để cung cấp một số biến thể và thông tin phiên bản tối thiểu

Vì vậy, xem xét các tài liệu này

Tôi sẽ đề xuất khóa dịch thuật này

Để tạo UUID từ ObjectID

- đặt ba byte đầu tiên (24 bit) thành $FE $EF $EE (thứ phải có tên, đúng không?)

- đặt ba byte tiếp theo (24 bit) thành phần băm máy của ObjectID (byte 4. 6)

- đặt hai byte tiếp theo (16 bit) vào phần pid của ObjectID (byte 7. số 8)

- đặt byte tiếp theo (8 bit) thành $70 ('phiên bản 7' dường như chưa được sử dụng)

- đặt bốn byte tiếp theo (32 bit) vào phần dấu thời gian của ObjectID (byte 0. 3)

- đặt ba byte tiếp theo (24 bit) thành phần gia tăng của ObjectID (byte 9. 11)

{FEEFEE LL-LLLL-MMMM-70 KK-KKKKKK NNNN}

Để xây dựng một ObjectID từ một UUID

- kiểm tra byte 0. 3 là $FE $EF $EE

- sử dụng byte 9. 11 dưới dạng byte ObjectID 0. 3

- sử dụng byte 3. 5 dưới dạng byte ObjectID 4. 6

- sử dụng byte 7. 8 dưới dạng byte ObjectID 7. 8

- sử dụng byte 13. 15 dưới dạng byte ObjectID 9. 11

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. Natural value value is 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 số nguyên giá trị được sử dụng để tạo ObjectID, số nguyên sẽ thay thế dấu thời gian

    y = ObjectId("507f191e810c19729de860ea")

    3 can accept a in the first into after. có thể chấp nhận một trong các đầu vào sau.

    Enter type

    Mô tả sự kiện

    y = ObjectId("507f191e810c19729de860ea")

    4

    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")

    5

    Không bắt buộc. Giá trị nguyên, tính bằng giây, được thêm vào Epoch Unix để tạo dấu thời gian mới. Kỷ nguyên Unix để tạo dấu thời gian mới.

    y = ObjectId("507f191e810c19729de860ea")

    3 có thuộc tính và phương thức sau. có các thuộc tính và phương thức sau.

    Thuộc tính/Phương thức

    Mô tả sự kiện

    y = ObjectId("507f191e810c19729de860ea")

    1

    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")

    2

    Không bắt buộc. Giá trị 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")

    3

    y = ObjectId("507f191e810c19729de860ea")

    3 có thuộc tính và phương thức sau

    y = ObjectId("507f191e810c19729de860ea")

    5

    Trả về biểu tượng chuỗi thập lục phân của đối tượng

    Trả về dấu thời gian của đối tượng là một ngày. ______03 không đối số.

    Trả về biểu tượng JavaScript dưới dạng một chuỗi theo nghĩa đen "

    y = ObjectId("507f191e810c19729de860ea")

    4".

    y = ObjectId("507f191e810c19729de860ea")

    1

    Trả về biểu tượng của đối tượng dưới dạng chuỗi thập lục phân. Rechargeable string thuộc tính

    ____121. ______03 với một chuỗi thập lục phân duy nhất.

    y = ObjectId("507f191e810c19729de860ea")

    Để tạo một ObjectID mới, hãy sử dụng

    y = ObjectId("507f191e810c19729de860ea")

    3 mà không có đối số

    y = ObjectId("507f191e810c19729de860ea")

    6

    Trong ví dụ này, value of

    y = ObjectId("507f191e810c19729de860ea")

    8 is.

    y = ObjectId("507f191e810c19729de860ea")

    0

    Để tạo một ObjectID mới bằng cách sử dụng

    y = ObjectId("507f191e810c19729de860ea")

    3 với chuỗi thập lục phân duy nhất

    Trong ví dụ này, value of

    y = ObjectId("507f191e810c19729de860ea")

    60 will be.

    y = ObjectId("507f191e810c19729de860ea")

    2

    Thuộc tính truy cập

    y = ObjectId("507f191e810c19729de860ea")

    1 of đối tượng

    y = ObjectId("507f191e810c19729de860ea")

    3, as after.

    y = ObjectId("507f191e810c19729de860ea")

    4

    Hoạt động này sẽ trả về chuỗi thập lục phân sau. Kỷ nguyên Unix . Trong ví dụ này

    y = ObjectId("507f191e810c19729de860ea")

    53 giây, được biểu thị bằng hệ thập lục phân là

    y = ObjectId("507f191e810c19729de860ea")

    64, được thêm vào. Phần tử ngẫu nhiên năm byte và bộ đếm ba byte tạo nên phần còn lại của ObjectId

    Tạo một ObjectID mới bằng cách sử dụng một số nguyên

    ObjectID same with

    In sao mặc định ObjectId("507f191e810c19729de860ea")5 is a hex string 24 character?

    Định danh duy nhất mặc định được tạo dưới dạng từ khóa chính (

    y = ObjectId("507f191e810c19729de860ea")

    65) 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 kỹ thuật số 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ị đại diện 4 byte cho các giây kể từ kỷ nguyên unix
    • Mã định danh máy 3 byte
    • ID quy đị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 ID độc lập 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ị 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 khởi động) và bạn sẽ muốn thêm 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 trường chưa bổ sung

    y = ObjectId("507f191e810c19729de860ea")

    65

    Tôi có phải sử dụng ObjectID default 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