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

MongoDB $unset Ако условието е изпълнено

Заявка

  • използва системна променлива $$REMOVE ако дадено поле получи тази стойност, то се премахва
  • така че условието е user.code , запазете старата стойност, ако не е "BLOCKED" ,"CANCELLED" , иначе "$$REMOVE" полето

Тестов код тук

db.collection.aggregate([
  {
    "$set": {
      "user.code": {
        "$cond": [
          {
            "$in": [
              "$user.status",
              [
                "BLOCKED",
                "CANCELLED"
              ]
            ]
          },
          "$$REMOVE",
          "$user.code"
        ]
      }
    }
  }
])

Редактиране

Горният код проверява user.status но искате да премахнете кода или не въз основа на user.olderAdress.status (след размотаването) (двете му полета с едно и също име)

Заявка (добавете това след етапите, които вече имате)

Тестов код

{
    "$set": {
      "user.code": {
        "$cond": [
          {
            "$in": [
              "$user.status",
              [
                "BLOCKED",
                "CANCELLED"
              ]
            ]
          },
          "$$REMOVE",
          "$user.code"
        ]
      }
    }
  }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вмъкване на обект momentjs в Meteor Collection

  2. Как да конструирам заявка за актуализиране на документ с вложен масив в mongo?

  3. Как да търсите в индекс на пълен текст с помощта на php в mongodb

  4. MongoDB изберете и свържете полета

  5. вземете преброяване на текстово търсене mongodb