Lite sent till festen, men...
Jag ville göra samma sak och fann att jag kunde åstadkomma det med ett uttryck som detta:
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
Tanken här är att när du gör
{ "$push": "$event" }
då verkar det bara trycka på icke-nullvärden.
Så jag skapade en kolumn som inte finns, $noval, som ska returneras som det falska villkoret för min $cond.
Det verkar fungera. Jag är inte säker på om det är icke-standardiserat och därför kan gå sönder en dag men...