Puedes usar "$$REMOVE"
:
- Esta variable del sistema se agregó en la versión 3.6 (documentos mongodb)
db.collection.aggregate([{
$group:{
field: {
$push: {
$cond:[
{ $gt: ["$A", 0] },
{ id: "$_id", A:"$A" },
"$$REMOVE"
]
}
},
secondField:{ $push: "$B" }
}
])
De esta manera, no tiene que filtrar nulos.