MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Gibt es eine Upsert-Option im Mongodb-Einfügebefehl?

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.