Trochu pozdě na párty, ale...
Chtěl jsem udělat to samé a zjistil jsem, že toho mohu dosáhnout výrazem jako je tento:
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
Myšlenka je taková, že když to uděláte
{ "$push": "$event" }
pak se zdá, že vkládá pouze nenulové hodnoty.
Takže jsem vytvořil sloupec, který neexistuje, $noval, který má být vrácen jako nepravdivá podmínka mého $cond.
Zdá se, že to funguje. Nejsem si jistý, jestli je to nestandardní a tudíž náchylné k rozbití jednoho dne, ale..