У меня есть следующая (упрощенная) агрегация:
Model.aggregate([
{
$lookup: {
from: 'orders',
localField: '_id',
foreignField: 'customer',
as: 'orders',
},
},
{
$project: {
openOrders: {
$filter: {
input: '$orders',
as: 'order',
cond: { $eq: ['$$order.status', 'open'] },
},
},
},
},
])
, которая возвращает следующее:
{
_id: ...,
openOrders: [
[Object], [Object]
],
}
Эти [Object]
- это просто возвращенные объекты, сохраняемые в базу данных со всеми их полями.
Я не нахожу способа проецировать / отфильтровывать поля этих объектов и вместо этого возвращаю только их _id
:
{
_id: ...,
openOrders: [
_id: ...,
_id: ....
],
}
EDIT : Я бы предпочел следующий ожидаемый результат:
{
_id: ...,
openOrders: [
{ _id: ... },
{ _id: ... }
],
}
Я безуспешно пытался добавить новый этап $project
в различные точки агрегации. Кто-нибудь может мне помочь?