Ich verstehe die Tatsache, dass Sie _id auf einem vorhandenen mongodb Dokument nicht aktualisieren können.Mongodb Aktualisierung. setOnInsert Mod für _id nicht erlaubt
Aber gibt es einen Grund, warum wir es nicht in einem upsert im 'setOnInsert' Teil verwenden können? Da es sich um eine Einfügung handelt, ist es kein Update. diese
ist mein erwartete Nutzung:
db.myCol.update({_id:12345},{$setOnInsert:{_id:12345},$set:{myValue:'hi'}});
Ist das ein Bug oder bin ich etwas fehlt?
wo ist das upsert Flag? lassen Sie setOnInsert einfach ausgeschaltet und das Richtige wird passieren. db.myCol.update ({_ id: 12345}, {$ set: {myValue: 'hi'}}) –
Ja, du hast recht, ich habe vergessen, das upsert Flag einzufügen. Anscheinend fügt es automatisch den Fundteil zum Einsatz ein, wenn es ein Upsert ist. Danke :) –
genau. Willst du es als Antwort aufschreiben oder soll ich? –