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

Актуализация на MongoDB с условие

Стартиране на Mongo 4.2 , db.collection.update() може да приеме конвейер за агрегиране, като накрая позволява актуализирането/създаването на поле въз основа на друго поле:

// { 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 }
  • Първата част {} е заявката за съответствие, която филтрира кои документи да актуализира (в нашия случай всички документи).

  • Втората част [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ] е тръбопроводът за обновяване на агрегиране (обърнете внимание на квадратните скоби, означаващи използването на конвейер за агрегиране). $set е нов оператор за агрегиране и псевдоним на $addFields . Тогава всеки оператор за агрегиране може да се използва в рамките на $set сцена; в нашия случай проверка на условно равенство, от която зависи стойността, която да се използва за новия active поле.

  • Не забравяйте { multi: true } , в противен случай само първият съответстващ документ ще бъде актуализиран.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Групиране по стойности и условия

  2. MongoDB C# Заявка за 'Like' на низ

  3. Вмъкване на елемент във вложени масиви в MongoDB

  4. Сравняване на производителността на MongoDB в публични облаци:AWS, Azure &DigitalOcean

  5. node.js &express - глобални модули и най-добри практики за структура на приложението