Lidt sent til festen, men...
Jeg ville gøre det samme, og fandt ud af, at jeg kunne opnå det med et udtryk som dette:
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
Tankegangen her er, at når du gør
{ "$push": "$event" }
så ser det ud til, at den kun skubber ikke-nullværdier.
Så jeg lavede en kolonne, der ikke eksisterer, $noval, som skal returneres som den falske tilstand af min $cond.
Det ser ud til at virke. Jeg er ikke sikker på, om det er ikke-standard og derfor er modtageligt for at gå i stykker en dag, men..