У меня есть такая модель:
{
name: 'John Doe',
items: [
{ count: 5, item: ObjectId('xxx1') },
{ count: 2, item: ObjectId('xxx2') }
]
}
items
поле не является обязательным и содержит числовое поле и ссылку на другой объект. Я хотел бы заменить item
внутри items
массива данными из сущности следующим образом:
{
name: 'John Doe',
items: [
{ count: 5, item: { more: 'data', from: 'other entity' } },
{ count: 2, item: { more: 'data 2', from: 'other entity 2' } }
]
}
Я попытался использовать агрегат и поиск mon go:
Model.aggregate([
{
$lookup: {
from: 'items',
localField: 'users.items',
foreignField: '_id',
as: 'users.items'
}
}
]);
но это заменяет все в массиве элементов (потеря поля count
). Как я могу это исправить?