Возможно ли, что я могу использовать два lookup stages
в single aggregate query
, ссылаясь на same table
, но с different local fields
Вот мой код,
const aggregate = [
{
$match: {
deleted: false,
},
},
{
$lookup: {
from: 'users',
localField: 'user',
foreignField: '_id',
as: 'users',
},
},
{
$lookup: {
from: 'products',
localField: 'product',
foreignField: '_id',
as: 'products',
},
},
{
$lookup: {
from: 'products',
localField: 'otherProduct',
foreignField: '_id',
as: 'otherProducts',
},
},
{
$project: {
_id: 1,
users: 1,
products: 1,
otherProducts: 1
},
},
];
Это два поиска, которые я использовал,
{
$lookup: {
from: 'products',
localField: 'product',
foreignField: '_id',
as: 'products',
},
},
{
$lookup: {
from: 'products',
localField: 'otherProduct',
foreignField: '_id',
as: 'otherProducts',
},
}
Я получаю пустой ответ от второго otherProducts
поиска .
Но, если сначала products lookup ($lookup: {from: 'products')
удален удален или прокомментирован , second
дает данные.
Но, если мы добавим оба поиска во второй поиск пуст.