MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да спрете вмъкването на дублиращи се документи в колекция mongodb

Не използвайте вложка.

Използвайте актуализация с upsert=true . Актуализацията ще търси документа, който съответства на вашата заявка, след това ще промени желаните от вас полета и след това можете да му кажете upsert:True, ако искате да вмъкнете, ако нито един документ не съответства на заявката ви.

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

Така че, за вашия пример, можете да използвате нещо подобно:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb v4.0 Transaction, MongoError:Номера на транзакции са разрешени само за член на набор от реплика или mongos

  2. Разбиране на Meteor Публикуване / Абониране

  3. MongoDB не може да намери директория с данни след надстройка до Mac OS 10.15 (Catalina)

  4. Прозрачен отказ на база данни за вашите приложения

  5. Нормализация на MongoDB, външен ключ и присъединяване