Я пытался выполнить запрос с полем, которое находится внутри другой коллекции, я использовал заполнение, но проблема в том, что заполнение не присоединяется REAL при чтении, поэтому я пошел с $lookup
в понедельник goose, но проблема в том, что он не выполняет запрос с объединенным полем, вот документ
[
{
"_id":"5e80e26dad54cf118474cba5",
"author":{
"_id":"5e7fbc19d8f65819a02847db",
"companyName":"mamubet llc",
"logo":"iconfinder_Beer_Barrel_drink_3017863-eb2d3a85-67f3-4ef3-aa40-50cc42441775.png"
},
"title":"TEST1",
...other fields
}
]
автор является присоединенным документом. но проблема в том, что когда я пытаюсь запросить с companyName
, как это:
queryBuilder['$or'] = [
{
title: {
$regex: query,
$options: 'i'
}
},
{
'author.companyName': {
$regex: query,
$options: 'i'
}
}
];
, это не возвращает правильный результат, почему? вот трубопровод
let instance = await Model.aggregate([
{
$match: queryBuilder
},
...other stages
{
$lookup: {
from: 'employers',
localField: 'author',
foreignField: '_id',
as: 'author'
}
},
{
$unwind: "$author"
},
{
$project: {
_id: 1,
title: 1,
updatedAt: 1,
...other fields
'author.companyName': 1,
'author.logo': 1,
'author._id': 1
}
}
]);