Как сделать зависимость массива объектов в mongoose?
У меня есть схема объекта страны, которая выглядит так:
{
name: 'Japan',
id: 1,
...
cities: [
some data...
]
}
и схема города с ссылкой на страну (countryId)
{
name: 'City Test'
countryId: 1
id: some data...
}
На выходе я хочу получить список стран в которых в поле cities буду готовые объекты привязанные к странам. Как я могу это реализовать?
Ответы (1 шт):
Автор решения: Dmitriy Grape
→ Ссылка
В MongoDB за подобные объединения коллекций отвечает $lookUp, mongoose также предоставляет удобный интерфейс для этого.
Для этого, в схеме страны для поля cities определите свойства localField, foreignField и ref.
const countrySchema = new Schema({
...
cities: [{ ref: 'название модели города', localField: 'id', foreignField: 'countryId' }]
});
Далее, при каждом find запросе вызывайте метод .populate('cities').