Promise based nested populate for Waterline and SailsJS
Installation
$ npm install --save nested-pop
Usage
var nestedPop =require('nested-pop');
User.find()
.populate('dog')
.then(function(users){
returnnestedPop(users,{
dog:[
'breed'
]
}).then(function(users){
return users
}).catch(function(err){
throw err;
});
}).catch(function(err){
throw err;
);
If the property is named differently than the model, you may need to use it the following way.
var nestedPop =require('nested-pop');
User.find()
.populate('canine')
.then(function(users){
returnnestedPop(users,{
canine:{
as:'dog',
populate:[
'breed'
]
}
}).then(function(users){
return users
}).catch(function(err){
throw err;
});
}).catch(function(err){
throw err;
);
If the property is plural, but the model is in the singular form, it usually automatically detects it.
This only works when the property's plural form only adds a single 's' to the end of the model name.