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

Mongodb upert ném DuplicateKeyException

Vấn đề mà tôi chỉ đoán có thể là sau:

Bạn đang thực hiện các hoạt động tìm kiếm dựa trên nhiều tiêu chí. Điều đó có nghĩa là nếu nó không thành công do bất kỳ thông số nào không khớp (trong tiêu chí) thì nó sẽ cố gắng chèn tài liệu.

Vì vậy, rất có thể là bạn đang cố gắng cập nhật cùng một tài liệu với cùng một _id nhưng một số tiêu chí khác không khớp, khiến nó phải chèn lại, điều này sẽ gây ra ngoại lệ khóa trùng lặp. Hãy xem xét ví dụ dưới đây

test:Mongo > db.example.update({ _id : 1, a : 1, b : 1},{ $set : {d : 1}}, true, false)
test:Mongo > db.example.find()
{ "_id" : 1, "a" : 1, "b" : 1, "d" : 1 }
test:Mongo > db.example.update({ _id : 1, a : 1, b : 2},{ $set : {d : 1}}, true, false)
E11000 duplicate key error index: test.example.$_id_  dup key: { : 1.0 }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xoay các hàng thành các cột trong MongoDB

  2. Trường danh sách có thể là khóa phân đoạn trong MongoDB không?

  3. Nhận Tất cả 'tài liệu' từ MongoDB 'bộ sưu tập'

  4. MongoDB và CodeIgniter

  5. Mongoose xóa (kéo) tài liệu trong một mảng, không hoạt động với ObjectID