Beetje laat op het feest, maar..
Ik wilde hetzelfde doen en ontdekte dat ik het kon bereiken met een uitdrukking als deze:
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
De gedachte hier is dat wanneer je
{ "$push": "$event" }
dan lijkt het alleen niet-null-waarden te pushen.
Dus heb ik een kolom verzonnen die niet bestaat, $noval, die moet worden geretourneerd als de valse voorwaarde van mijn $cond.
Het lijkt te werken. Ik weet niet zeker of het niet-standaard is en daarom op een dag kan breken, maar..