Verwenden Sie keine Einfügung.
Verwenden Sie update mit upsert=true
. Update sucht nach dem Dokument, das Ihrer Abfrage entspricht, dann ändert es die gewünschten Felder und dann können Sie upsert:True mitteilen, wenn Sie einfügen möchten, wenn kein Dokument Ihrer Abfrage entspricht.
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
Für Ihr Beispiel könnten Sie also so etwas verwenden:
db.collection.update(doc, doc, {upsert:true})