MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment arrêter l'insertion de documents en double dans une collection mongodb

Ne pas utiliser d'insert.

Utiliser la mise à jour avec upsert=true . Update cherchera le document qui correspond à votre requête, puis il modifiera les champs que vous voulez et ensuite, vous pouvez lui dire upsert:True si vous voulez insérer si aucun document ne correspond à votre requête.

db.collection.update(
   <query>,
   <update>,
  {
    upsert: <boolean>,
     multi: <boolean>,
    writeConcern: <document>
   }
  )

Donc, pour votre exemple, vous pourriez utiliser quelque chose comme ceci :

db.collection.update(doc, doc, {upsert:true})