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

cómo evitar $push-ing nulos en el marco de agregación de mongo

Un poco tarde para la fiesta, pero...

Quería hacer lo mismo y descubrí que podía lograrlo con una expresión como esta:

  // Pushes events only if they have the value 'A'
  "events": {
    "$push": {
      "$cond": [
        {
          "$eq": [
            "$event",
            "A"
          ]
        },
        "A",
        "$noval"
      ]
    }
  }

El pensamiento aquí es que cuando lo haces

{ "$push": "$event" } 

entonces parece que solo empuja valores no nulos.

Así que inventé una columna que no existe, $noval, para que se devuelva como la condición falsa de mi $condición.

Parece funcionar. No estoy seguro de si no es estándar y, por lo tanto, es susceptible de romperse algún día, pero...