Плохие новости, вы не можете, единственное решение - использовать $ facet и иметь 2 отдельных конвейера.
Как вы, вероятно, представляете, это не очень хорошее решение, поскольку оно тратит ресурсы на резервный конвейер.
Я не уверен, что вы можете задействовать какой-то код, но если вы можете, это ваш лучший вариант.
$ Фасет конвейера $:
db.User.aggregate([
{
$facet: {
user: [
{
"$lookup":{
"localField":"ID",
"from":Client,
"foreignField":"ID",
"as":"newUser"
},
},
{
"$unwind":"$newUser"
}],
admin: [
{
"$lookup":{
"localField":"ID",
"from":Admin,
"foreignField":"ID",
"as":"newUser"
},
},
{
"$unwind":"$newUser"
}],
}
},
{
$match: {
use "correct" user here..
}
}
])