パーティーに少し遅れましたが..
同じことをしたかったのですが、次のような表現で実現できることがわかりました。
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
ここでの考え方は、あなたがそうするとき
{ "$push": "$event" }
次に、null以外の値のみをプッシュするようです。
そこで、$ condの誤った条件として返される、存在しない列$novalを作成しました。
うまくいくようです。それが非標準であり、したがっていつか壊れやすいかどうかはわかりませんが..