Você terá que modificar o primeiro
$lookup
para usar um pipeline
(disponível a partir da v3.6) [
{
"$match": {
"id_site": 3,
"id_parent": null,
"id_class": null
}
},
{
"$lookup": {
"from": "categories",
"let": {
"cid": "$_id"
},
"pipeline": [
{
"$match": {
"$expr": { $eq: ["$id_parent", "$$cid"] }
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
],
"as": "Childs"
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
]