Bạn có thể sử dụng $ redact thay vì $ match trong trường hợp này, như thế này
db.collectionName.aggregate({
$redact:{
$cond:{
if:{$and:[{$not:"$dealerName"},{$not:"$title"},{$eq:["$listed",false]},
then: "$$PRUNE",
else: "$$DESCEND"
}
}
})
Chúng ta cần điều kiện đầu tiên để bỏ qua các tài liệu cấp cao nhất, điều kiện thứ hai để bỏ qua cấp độ thứ hai và điều kiện thứ ba để cắt tỉa phương tiện. Không cần $ thư giãn trong trường hợp này!
Một điều nữa:$ redact chỉ có trong 2.6