Example 1: populate subdocument mongoose
ProjectMetadata.findOne({id:req.params.prjId})
.populate(
[{
path:'tasks',
model:TaskMetadata,
populate:[{
path:'assigned_to',
model:User,
select:'name employee_id'
},
{
path:'priority',
model:Priority,
select:'id title'
}],
select:"task_name id code assign_to stage priority_id"
},
{
path:'client',
model:Client,
select:"client_name"
},
{
path:'prjct_mgr',
model:User,
select:"name"
},
{
path:'acc_exec',
model:User,
select:'name employee_id'
},
{
path:'poc',
model:User,
select:'name employee_id'
},
{
path:'prj_type',
model:ProjectType,
select:"type -_id"
}
])
Example 2: how to delete popultate subdocument mongoose
Surf
.find({user_id: {$in: userIds}})
.populate('user_id', 'name boards')
.populate('friends', 'name')
.exec(function (err, surfs) {
if (err) {
return handleError(res, err);
}
surfs.forEach(function (surf) {
surf.set('boardInfo', surf.user_id.boards.id(surf.board_id), {strict: false});
});
return res.json(200, surfs);
});
Example 3: how to delete popultate subdocument mongoose
exports.feed = function (req, res) {
var userIds = req.user.friends;
Surf
.find({user_id: {$in: userIds}})
.populate('user_id', 'name boards')
.populate('friends', 'name')
.exec(function (err, surfs) {
if (err) {
return handleError(res, err);
}
surfs.forEach(function (surf) {
surf.boardInfo = surf.user_id.boards.id(surf.board_id)
});
return res.json(200, surfs);
});
};