Seit upsert ist als Vorgang definiert, der "ein neues Dokument erstellt, wenn kein Dokument den Abfragekriterien entspricht " Es gibt keinen Platz für upserts in insert Befehl. Es ist eine Option für das update Befehl. Wenn Sie den Befehl wie unten ausführen, funktioniert dies als update , wenn es ein Dokument gibt, das mit query , oder als insert mit Dokument beschrieben durch update als Argument
.
db.collection.update(query, update, {upsert: true})
MongoDB 3.2 fügt replaceOne hinzu
:
db.collection.replaceOne(query, replacement, {upsert: true})
das ein ähnliches Verhalten hat, aber sein replacement kann keine Aktualisierungsoperatoren enthalten.