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

Mongoose:atomic FindOne-Or-Insert(), не актуализирайте съществуващ екземпляр, ако бъде намерен

Можете да използвате $setOnInsert във вашия параметър за актуализиране, така че да се прилага само във вмъкнатия случай; като актуализацията става безоперационна в случай, че документът вече съществува:

return await Foo.findOneAndUpdate(
  filter,                 // find a document with that filter
  {$setOnInsert: fooDoc}, // document to insert when nothing was found
  { upsert: true, new: true, runValidators: true }
)

Обърнете внимание, че трябва също да създадете уникален индекс върху полетата, включени във вашия filter и след това да се справи с възможността за дублирана грешка. Вижте тази публикация за подробности защо.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Шест критични компонента на успешното управление на данните

  2. Изпълнение на репликиран MongoDB 4.2 в Kubernetes:конфигурацията на replset не е получена

  3. Mongo Map Reduce за първи път

  4. В MongoDB търсене в масив и сортиране по брой съвпадения

  5. Актуализирайте масива Mongo:премахнете динамичния ключ