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

utworzyć dokument mongodb z poddokumentami atomowo?

Zaktualizuj za pomocą upsert=true może być użyty do wykonania niepodzielnego „wstawienia lub aktualizacji” (http://docs.mongodb.org/manual/core/update/#update-operations-with-the-upsert-flag ).

Na przykład, jeśli chcemy się upewnić, że dokument w kolekcji Front ma określony url jest wstawiony dokładnie raz, możemy uruchomić coś takiego:

db.Front.update(
    {url: 'http://example.com'},
    {$set: {
       url: 'http://example.com'},
       found: true
    }
)

Operacje na pojedynczym dokumencie w MongoDB są zawsze niepodzielne. W przypadku wprowadzania aktualizacji obejmujących wiele dokumentów nie jest gwarantowana niepodzielność. W takich przypadkach możesz zadać sobie pytanie:czy naprawdę muszę, aby operacje były atomowe? Jeśli odpowiedź brzmi „nie”, prawdopodobnie znajdziesz sposób na pracę z potencjalnie niespójnymi danymi. Jeśli odpowiedź brzmi tak i chcesz pozostać przy MongoDB, sprawdź wzorzec projektowy na Zatwierdzenia dwufazowe .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Model Mongoose TypeError:Schemat nie jest konstruktorem

  2. Jak zapisać wiele kolekcji mongodb za pomocą Promise?

  3. Express Mongoose Model.find() zwraca undefined

  4. Mongoose — Zapytanie o najnowszy dokument

  5. Dlaczego otrzymuję błąd Nie można ustawić nagłówków po ich wysłaniu do klienta w Nodejs?