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

Sự khác biệt giữa lưu trữ một ObjectId và dạng chuỗi của nó, trong MongoDB

Cá nhân tôi, đổ lỗi cho mã của bạn. Tôi vượt qua điều này một cách hoàn hảo trong các ứng dụng của mình bằng cách viết mã đúng cách. Tôi chuyển đổi thành chuỗi trong mã để so sánh và tôi đảm bảo rằng bất kỳ thứ gì trông giống như một ObjectId thực sự được sử dụng như một ObjectId .

Cần lưu ý rằng giữa ObjectId (http://docs.mongodb.org/manual/reference/object-id/) và đó là biểu diễn hex trên thực tế có 12 byte chênh lệch, ObjectId là 12 byte và biểu diễn hex của nó là 24.

Không chỉ là về hiệu quả lưu trữ mà còn về chỉ số; không chỉ vì chúng nhỏ hơn mà còn vì ObjectId có thể được sử dụng theo cách đặc biệt để đảm bảo rằng chỉ các phần của chỉ mục được tải; các bộ phận được sử dụng. Điều này trở nên đáng chú ý nhất khi chèn, trong đó chỉ phần mới nhất của chỉ mục đó cần được tải vào để đảm bảo tính duy nhất. Bạn không thể đảm bảo hành vi như vậy với biểu diễn hex của nó.

Tôi thực sự khuyên bạn không nên sử dụng OjbectId biểu diễn hex của. Nếu bạn muốn "làm cho cuộc sống của mình dễ dàng hơn", bạn nên tạo một _id khác nhỏ hơn nhưng bằng cách nào đó vẫn độc đáo và thân thiện với chỉ mục.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm hiểu xem một Truy vấn có sử dụng Chỉ mục trong MongoDB hay không

  2. Sự khác biệt giữa phương thức insert (), insertOne () và insertMany () là gì?

  3. Chỉ truy xuất phần tử được truy vấn trong một mảng đối tượng trong bộ sưu tập MongoDB

  4. BsonSerializationException khi tuần tự hóa một Từ điển <DateTime, T> thành BSON

  5. Xác thực không thành công khi cố gắng lưu vào mongodb