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

MongoDB - Tại sao chỉ mục _id không thông báo lỗi trên các mục trùng lặp?

Không có lý do gì để hiển thị lỗi chỉ mục trùng lặp trong trường hợp đầu tiên vì nó chỉ đang cố cập nhật _idname các trường của cùng một bản ghi có cùng giá trị.

Nếu bạn sẽ thử

  db.foo.update({ _id: '1098'}, { _id: 'doe123', name: 'John Doe'}, { upsert: true});

bạn sẽ gặp lỗi, vì truy vấn đang cố cập nhật bản ghi với _id khác với một số _id hiện có giá trị.

Trong trường hợp thứ hai, trước tiên bạn đã tạo một bản ghi với name và sau đó bạn đang thử cập nhật cùng một tên trong một bản ghi khác, điều này sẽ gây ra lỗi là name là chỉ mục duy nhất.

Chỉnh sửa:-

Nếu bạn đang cố gắng

 db.foo.insert({ _id: 'doe123', name: 'John Doe'});

sẽ cung cấp cho bạn lỗi, như trong trường hợp này, bạn đang cố gắng chèn một bản ghi đã có sẵn, tức là _id là duy nhất và bạn đang cố gắng tạo thêm một bản ghi có cùng _id giá trị.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào tôi có thể viết tập hợp mà không vượt quá kích thước tài liệu tối đa?

  2. hex thay vì base64 trong BinData () - MongoDB

  3. Mongoose find (), làm thế nào để truy cập các tài liệu kết quả?

  4. mongoose:tìm dữ liệu bằng cách lặp lại trên một mảng mô hình

  5. Cách thực hiện ánh xạ trong khi lập chỉ mục trongasticsearch