Мне нужно заполнить два уровня вниз с помощью Mongoose / Keystone, но я столкнулся с препятствием.
У меня 3 модели: Регион, Страна и Город. Регионы содержат страны, а страны содержат города.
Мои модели:
Регион модели:
var Region = new keystone.List('Region');
Region.add({
name: {type: Types.Text}
, countries: {type: Types.Relationship, ref: 'Country', many: true}
});
Страна модели
var Country = new keystone.List('Country');
Country.add({
name: {type: Types.Text}
, cities: {type: Types.Relationship, ref: 'City', many: true}
});
Образцовый город
var City = new keystone.List('City');
City.add({
name: {type: Types.Text}
});
Запрос:
keystone.list('Region').model.find()
.populate('countries')
.exec(function(err, regions){
console.log(regions)
});
Урожайность:
{
name: 'Oceania',
countries: [
{
_id: 55d9b260415baa6958ac04c1
name: 'Australia',
cities: [
_id: 55d9b260415baa6958ac04c2,
_id: 55d9b260415baa6958ac04c3,
_id: 55d9b260415baa6958ac04c4
]
},
{
_id: 55d9b260415baa6958ac04c5
name: 'New Zealand',
cities: [
_id: 55d9b260415baa6958ac04c6,
_id: 55d9b260415baa6958ac04c7
]
}
]
},
{
name: 'Americas',
countries: [
{
_id: 55d9b260415baa6958ac04c1
name: 'USA',
cities: [
_id: 55d9b260415baa6958ac04d2,
_id: 55d9b260415baa6958ac04d3,
_id: 55d9b260415baa6958ac04d4
]
},
{
_id: 55d9b260415baa6958ac04c5
name: 'Canada',
cities: [
_id: 55d9b260415baa6958ac04e6,
_id: 55d9b260415baa6958ac04e7
]
}
]
}
]
Как бы я заселил города? Насколько я понимаю, Mongoose не поддерживает глубокое заселение.
Могу ли я запросить результаты тогда или как?