Bisschen spät zur Party, aber..
Ich wollte dasselbe tun und stellte fest, dass ich es mit einem Ausdruck wie diesem erreichen konnte:
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
Das Denken hier ist, dass, wenn Sie
tun{ "$push": "$event" }
dann scheint es nur Nicht-Null-Werte zu pushen.
Also habe ich eine Spalte erstellt, die nicht existiert, $noval, die als falsche Bedingung meiner $cond zurückgegeben wird.
Es scheint zu funktionieren. Ich bin mir nicht sicher, ob es nicht dem Standard entspricht und daher eines Tages kaputt gehen kann, aber..