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..