sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB $unset Si se cumple la condición

Consulta

  • usa una variable de sistema $$REMOVE si un campo obtiene este valor, se elimina
  • entonces la condición es user.code , mantenga el valor anterior si no "BLOCKED" ,"CANCELLED" , de lo contrario "$$REMOVE" el campo

Código de prueba aquí

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

Editar

El código anterior comprueba el user.status pero desea eliminar el código o no según el user.olderAdress.status (después de la relajación)(sus 2 campos con el mismo estado de nombre)

Consulta (agregue esto después de las etapas que ya tiene)

Código de prueba

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