W tym przypadku możesz użyć $redact zamiast $match, w ten sposób
db.collectionName.aggregate({
$redact:{
$cond:{
if:{$and:[{$not:"$dealerName"},{$not:"$title"},{$eq:["$listed",false]},
then: "$$PRUNE",
else: "$$DESCEND"
}
}
})
Potrzebujemy pierwszego warunku do pominięcia dokumentów najwyższego poziomu, drugiego warunku do pominięcia drugiego poziomu i trzeciego do przycinania pojazdów. Nie trzeba się odprężać w tym przypadku!
Jeszcze jedno:$redact dostępne tylko w wersji 2.6