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

So stoppen Sie das Einfügen doppelter Dokumente in eine Mongodb-Sammlung

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})