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

MongoDB $unset Jeśli warunek jest spełniony

Zapytanie

  • używa zmiennej systemowej $$REMOVE jeśli pole otrzyma tę wartość, zostanie usunięte
  • więc warunek to user.code , zachowaj starą wartość, jeśli nie "BLOCKED" ,"CANCELLED" , w przeciwnym razie "$$REMOVE" pole

Kod testowy tutaj

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

Edytuj

Powyższy kod sprawdza user.status ale chcesz usunąć kod, czy nie w oparciu o user.olderAdress.status (po odprężeniu)(jego 2 pola o tym samym statusie nazwy)

Zapytanie (dodaj to po etapach, które już masz)

Kod testowy

{
    "$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. MongoDB $split

  2. java.lang.NoSuchMethodError:com.mongodb.MongoClient.<init>(Ljava/util/List;Lcom/mongodb/MongoCredential;Lcom/mongodb/MongoClientOptions;)V]

  3. Meteor dynamicznie filtruje menu rozwijane po wybraniu innego menu rozwijanego

  4. Jak zabezpieczyć serwer ClusterControl

  5. dostęp do dokumentów podrzędnych w Rails 3 za pomocą Mongoid