Você poderia usar $redact em vez de $match neste caso, assim
db.collectionName.aggregate({
$redact:{
$cond:{
if:{$and:[{$not:"$dealerName"},{$not:"$title"},{$eq:["$listed",false]},
then: "$$PRUNE",
else: "$$DESCEND"
}
}
})
Precisamos da primeira condição para pular documentos de nível superior, segunda condição para pular o segundo nível e a terceira para podar veículos. Não é necessário $unwind nesse caso!
Mais uma coisa:$redact disponível apenas na versão 2.6