Малко късно за партито, но...
Исках да направя същото и открих, че мога да го постигна с израз като този:
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
Мисълта тук е, че когато го направите
{ "$push": "$event" }
тогава изглежда, че натиска само не-нулеви стойности.
Така че създадох колона, която не съществува, $noval, която да бъде върната като фалшиво условие на моя $cond.
Изглежда, че работи. Не съм сигурен дали е нестандартен и следователно може да се счупи един ден, но..