Er kunnen meerdere updates op hetzelfde document worden uitgevoerd, zolang die updates niet conflicteren (vandaar de foutmelding "hebben conflicterende mods in update").
Omdat "$push" :{"bugs" :[{"name":"bug1", "count":1}]} en "$inc" :{"bugs.0.count" :1} beide proberen om hetzelfde deel van het document wijzigen (namelijk de "bugs"-array), conflicteren ze.
Meerdere updates kunnen worden gecombineerd als elk een ander deel van het document beïnvloedt:
bijvoorbeeld:
> 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." }
>
De update bevatte drie verschillende bewerkingen ($pushAll, $inc en $set), maar kon met succes worden voltooid, omdat elke bewerking een ander deel van het document beïnvloedde.
Ik realiseer me dat dit niet precies is wat u hoopte te doen, maar hopelijk geeft het u een beetje beter inzicht in hoe updates werken en geeft het misschien enkele ideeën over hoe uw updates en/of documenten kunnen worden geherstructureerd om de functionaliteit uit te voeren die uw aanvraag vereist. Veel geluk.