Множество актуализации могат да бъдат извършени в един и същ документ, стига тези актуализации да не са в конфликт (оттук и грешката „има конфликтни модификации в актуализацията“).
Защото "$push" :{"bugs" :[{"name":"bug1", "count":1}]} и "$inc" :{"bugs.0.count" :1} се опитват да променят същата част от документа (а именно масива "бъгове"), те са в конфликт.
Множество актуализации могат да бъдат комбинирани, ако всяка засяга различна част от документа:
например:
> db.test.drop()
true
> db.test.save({ "_id" : 1, "name" : "albert", "bugs" : [ ] })
> db.test.update({"name":"albert"}, {"$pushAll" : {"bugs" : [{"name":"bug1", "count":1}]}, "$inc" : {"increment" : 1}, $set:{"note":"Here is another field."}})
> db.test.find()
{ "_id" : 1, "bugs" : [ { "name" : "bug1", "count" : 1 } ], "increment" : 1, "name" : "albert", "note" : "Here is another field." }
>
Актуализацията съдържаше три различни операции ($pushAll, $inc и $set), но успя да завърши успешно, тъй като всяка операция засегна различна част от документа.
Разбирам, че това не е точно това, което се надявахте да направите, но се надявам, че ще ви даде малко по-добро разбиране за това как работят актуализациите и може би ще даде някои идеи как вашите актуализации и/или документи могат да бъдат преструктурирани, за да изпълняват функционалността, която вашата приложението изисква. Късмет.