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

Aktualizacja MongoDB z warunkiem

Uruchamianie Mongo 4.2 , db.collection.update() może zaakceptować potok agregacji, ostatecznie umożliwiając aktualizację/tworzenie pola na podstawie innego pola:

// { a: "Hello", b: "World" }
// { a: "Olleh", b: "Dlrow" }
db.collection.update(
  {},
  [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ],
  { multi: true }
)
// { a: "Hello", b: "World", active: true  }
// { a: "Olleh", b: "Dlrow", active: false }
  • Pierwsza część {} to zapytanie dopasowujące, filtrujące dokumenty do zaktualizowania (w naszym przypadku wszystkie dokumenty).

  • Druga część [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ] to potok agregacji aktualizacji (zwróć uwagę na nawiasy kwadratowe oznaczające użycie potoku agregacji). $set to nowy operator agregacji i alias $addFields . Następnie można użyć dowolnego operatora agregacji w ramach $set scena; w naszym przypadku warunkowe sprawdzenie równości, od którego zależy wartość do użycia dla nowego active pole.

  • Nie zapomnij { multi: true } , w przeciwnym razie tylko pierwszy pasujący dokument zostanie zaktualizowany.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo, przejrzyj listę identyfikatorów

  2. Jak połączyć tablice z wielu dokumentów w MongoDB?

  3. Importuj dane CSV jako tablicę w MongoDB za pomocą mongoimport

  4. Dokument Czytaj i wstawiaj z blokowaniem/transakcją w nodejs z mongodb

  5. MongoDB $ifNull