In mangusta puoi farlo in questo modo:
regionModel.find().populate("countries").exec(function(err, regions){
if(err){
throw err;
}
// Regions with populate countries
cityModel.populate(regions, {
path: 'countries.cities',
select: '_id name'
},function(err, regions) {
//Regions with Countries and Populated Cities
});
})
In realtà non ho familiarità con la sintassi trapezoidale, ma provo a convertirla in sintassi trapezoidale. Spero che funzioni, in caso contrario prova a convertire il codice sopra equivalente a keystonejs
keystone.list('Region').model.find()
.populate('countries')
.exec(function(err, regions){
if(err){
throw err;
}
keystone.list('City').model.find()
.populate('cities')
.exec(function(err, regions){
console.log(regions)
});
});