MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm thế nào là một MongoDB ObjectID 12 byte?

Theo tài liệu ObjectId , chuỗi mà bạn thấy là một đại diện hex của 12 byte. Nó không phải là Unicode hoặc thậm chí là một chuỗi. Nó thực sự là một con số.

Một byte là 8 bit, nghĩa là nó có thể có 2 ^ 8 ==256 giá trị có thể có (xem Byte ).

Làm thế nào để bạn biểu diễn một số với 256 giá trị có thể một cách ngắn gọn? Làm thế nào về việc biểu diễn nó là 16 ^ 2? Bạn có thể đạt được điều này bằng cách sử dụng 2 giá trị thập lục phân (cơ số 16). Điều duy nhất bạn cần phát minh là một hệ thống đánh số chuyển thành 16 thay vì 10.

Trên thực tế, chúng tôi sử dụng các chữ cái từ a thành f đại diện cho các giá trị từ 10 đến 15.

Do đó, một byte có thể được biểu diễn bằng hai số thập lục phân. Nó chỉ xảy ra khi sử dụng a thành f vì chúng tôi không thể bận tâm đến việc phát minh ra các biểu tượng đặc biệt cho chúng. Chúng không phải là chữ cái. Chúng là những con số.

Vì vậy, không, chuỗi bạn thấy trong ObjectId không đại diện cho 24 byte. Cứ 2 ký tự đại diện cho một byte. 24 số hex ==12 byte.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Đối phó với điều kiện chủng tộc và nạn đói khi tạo ID duy nhất bằng MongoDB + NodeJS

  2. Sự cố với yêu cầu PUT sử dụng Node.js (express), Angular và MongoDB

  3. Không thể tìm thấy mã mô-đun '../build/Release/bson']:'MODULE_NOT_FOUND'} js-bson:Không tải được tiện ích mở rộng c ++ bson, sử dụng phiên bản JS thuần túy

  4. lỗi TS2688:Không thể tìm thấy tệp định nghĩa loại cho 'bson'

  5. NoSQL so với SQL khi khả năng mở rộng không liên quan