sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB $unset Hvis betingelsen er opfyldt

Forespørgsel

  • bruger en systemvariabel $$REMOVE hvis et felt får denne værdi, fjernes det
  • så betingelsen er user.code , behold den gamle værdi, hvis ikke "BLOCKED" ,"CANCELLED" , ellers "$$REMOVE" feltet

Testkode her

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

Rediger

Ovenstående kode kontrollerer user.status men du vil fjerne kode eller ikke baseret på user.olderAdress.status (efter afslapningen) (dets 2 felter med samme navn status)

Forespørgsel (tilføj dette efter de stadier, du allerede har)

Testkode

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



  1. Læs data fra Redis til Flink

  2. Vil redis incr-kommandoen være begrænsning til et bestemt antal?

  3. Rails 3 ved hjælp af MongoDB via mongoid-adapter - er der nogen måde at dele attributspecifikationer på uden at bruge Single-Table Inheritance?

  4. Sådan opretter du en vare, hvis den ikke findes, og returnerer en fejl, hvis den findes