В моей коллекции MongoDB есть поле с массивом ObjectId. Этот массив содержит порядок появления ObjectIds в списке. Это происходит тогда, когда я пытаюсь использовать $ lookup в агрегации, это сортирует мой массив по порядку создания.
Когда я использую только:
$project: {
list: 1
}
, результат - правильный порядок элементов:
[
5e9b7dc0500c9a5c3809b0c8,
5e9b7efad230686164a64bdb,
5e9b7dfc6244792818f7cdba,
5e9b7e355a7c843e90a2ed48,
5e9b7e86efb9111d1c91ea77,
5e9b7eb26463144eac64cb16
]
, и когда я использую поиск, изменение порядка:
$lookup: {
from: 'users',
localField: 'user',
foreignField: '_id',
as: 'list'
}
},
{
$project: {
list: 1
}
}
это результат
[
{_id: 5e9b7dc0500c9a5c3809b0c8 },
{_id: 5e9b7dfc6244792818f7cdba },
{_id: 5e9b7e355a7c843e90a2ed48 },
{_id: 5e9b7e86efb9111d1c91ea77 },
{_id: 5e9b7eb26463144eac64cb16 },
{_id: 5e9b7efad230686164a64bdb }
]
Может ли кто-нибудь помочь мне с этим?
edit:
Использование findOne (). Populate () вместо aggregate () было для меня более легкой альтернативой.