Я борюсь с досадной проблемой. Я использую агрегацию в запросе, и мне нужно объединить некоторые коллекции, и выходные данные должны быть объектом. Это мой код ...
usersModel.aggregate([
{
$match: { _id: ObjectId(req.params.id) }
},
{
$lookup: {
from: "agents",
as: "agent",
let: { "idAgent": "$agent" }, //$agent can be null
pipeline: [
{
$match: {
$expr: {
$eq: ['$_id', "$$idAgent"]
},
}
}
],
}
},
{ $unwind: { path: '$agent', preserveNullAndEmptyArrays: true } },
{
$addFields: {
agent: "$agent", //If $agent is null, it does not output the field agent...
}
}
])
Если в последней стадии поле $ agent равно нулю, $ addFields не выводит поле. Есть ли другой подход к этому? Мне нужно просто поле агента в качестве объекта после поиска. Спасибо