MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose:atomowa FindOne-Or-Insert(), nie aktualizuj istniejącej instancji, jeśli zostanie znaleziona

Możesz użyć $setOnInsert w parametrze aktualizacji, aby miał zastosowanie tylko w przypadku wstawiania; aktualizacja staje się zakazem w przypadku, gdy dokument już istnieje:

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

Pamiętaj, że powinieneś również utworzyć unikalny indeks nad polami zawartymi w twoim filter a następnie obsłużyć możliwość zduplikowanego błędu. Zobacz ten post po szczegóły dlaczego.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Przełącz wartość logiczną poddokumentów

  2. Utwórz indeks wieloznaczny w MongoDB

  3. Czy PHP 5.5 współpracuje ze sterownikiem MongoDB?

  4. Przechowywanie pliku PDF w DB za pomocą Flask-admin

  5. Asynchroniczna iteracja kursora z asynchronicznym podzadaniem