Du kan använda $redact istället för $match i det här fallet, så här
db.collectionName.aggregate({
$redact:{
$cond:{
if:{$and:[{$not:"$dealerName"},{$not:"$title"},{$eq:["$listed",false]},
then: "$$PRUNE",
else: "$$DESCEND"
}
}
})
Vi behöver första villkoret för att hoppa över dokument på toppnivå, andra villkoret för att hoppa över andra nivån och tredje villkoret för att beskära fordon. Inga $unwind behövs i det här fallet!
En sak till:$redact endast tillgänglig i 2.6