Нужно найти документ по подстроке и сделать аггрегацию с помощью aggregate.lookup() в mongodb используя mongoose
Всем хай. Я ищу докумет с помощью метода Model.find() в mongoose:
ChamWord
.find({
word: {
$regex: body.searchValue,
$options: 'i',
},
})
А также у меня получается сделать аггрегацию, добавив поддокумент, с помощью метода lookup():
ChamWord.lookup({
from: 'ruwords',
localField: 'wordId',
foreignField: 'translateId',
as: 'translation',
})
Но я не могу объединить эти два метода и не знаю как это сделать. Мне нужно чтобы после поиска как в первом фрагменте кода я сразу же делал и аггрегацию как во втором фрагмете кода и только после этого получал данные.
Ответы (1 шт):
Автор решения: Esperson
→ Ссылка
Вопрос решен с помощью $match:
ChamWord.aggregate([
{
$match: {
word: {
$regex: body.searchValue,
$options: 'i',
},
},
},
{
$lookup: {
from: 'ruwords',
localField: 'wordId',
foreignField: 'translateId',
as: 'translation',
},
},
])