Agak terlambat ke pesta, tapi..
Saya ingin melakukan hal yang sama, dan ternyata saya bisa melakukannya dengan ekspresi seperti ini:
// Pushes events only if they have the value 'A'
"events": {
"$push": {
"$cond": [
{
"$eq": [
"$event",
"A"
]
},
"A",
"$noval"
]
}
}
Pemikiran di sini adalah ketika Anda melakukan
{ "$push": "$event" }
maka tampaknya hanya mendorong nilai non-null.
Jadi saya membuat kolom yang tidak ada, $noval, untuk dikembalikan sebagai kondisi palsu dari $cond saya.
Tampaknya bekerja. Saya tidak yakin apakah itu non-standar dan karena itu rentan terhadap kerusakan suatu hari tapi..