MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

comment éviter $push-ing nulls dans le cadre d'agrégation mongo

Un peu tard pour la fête, mais...

Je voulais faire la même chose et j'ai découvert que je pouvais y parvenir avec une expression comme celle-ci :

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

La pensée ici est que lorsque vous le faites

{ "$push": "$event" } 

alors il semble ne pousser que des valeurs non nulles.

J'ai donc créé une colonne qui n'existe pas, $noval, à renvoyer comme fausse condition de mon $cond.

Cela semble fonctionner. Je ne sais pas si c'est non standard et donc susceptible de casser un jour mais..