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

mongodb задава стойност на поле с помощта на if else по време на актуализацията на документа

MongoDB не поддържа вида условна актуализация, която търсите. Все пак можете да се справите по-добре от използването на подхода за намиране, зацикляне и запазване.

Преместете проверката на условието в update селектор на заявки и след това издайте две актуализации (по една за всеки случай), като използвате {multi: true} за да приложите актуализацията към всички съответстващи документи.

// Start with the "if" update
Documents.update(
    {some_condition: true, "some field": "some condition"}, 
    {$set: {"status": "value 1"}},
    {multi: true},
    function(err, numAffected) {
        // Now do the "else" update, using $ne to select the rest of the docs
        Documents.update(
            {some_condition: true, "some field": {$ne: "some condition"}}, 
            {$set: {"status": "value 2"}},
            {multi: true},
            function(err, numAffected) {
                // All done.
            }
        )
    }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изградите динамично mongodb заявка

  2. Как да заявявам вложени обекти?

  3. Model.find().toArray() твърди, че няма метод .toArray().

  4. OAuth 2.0 – Кога токенът за достъп трябва да бъде подновен с токен за опресняване?

  5. Как да управлявате шаблони за конфигурация за вашите бази данни с ClusterControl