Problém, který jen hádám, může být následující:
Vyhledáváte operace na základě mnoha kritérií. To znamená, že pokud selže kvůli jakékoli neshodě parametru (v kritériích), pokusí se vložit dokument.
Je tedy pravděpodobné, že se pokoušíte aktualizovat stejný dokument se stejným _id, ale některá další kritéria neodpovídají, což způsobí jeho opětovné vložení, což způsobí výjimku duplicitního klíče. Zvažte níže uvedený příklad
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 }