我正在为我的应用创建数据库服务,但需要一些代码。人口众多。因此可以添加如下内容:
if (populateFriends) {
.populate('friends')
}
if (populatePosts) {
.populate('posts')
}
并添加结尾,它将自动将其添加到find()。populate('friends')。populate('posts');
因为现在我得到了这样的东西:
Action.find({ completed: false, userRole: ROLES.ADMIN }, selection)
.populate({
path: 'tender',
select: 'number description shipper carriers type',
populate: {
path: 'shipper',
select: 'company firstName lastName',
populate: {
path: 'company',
select: 'companyName'
}
}
})
.sort({ creationDate: -1 })
.populate('additionalData.documentId'),
构建一系列要填充的东西。您可以动态构建此数组,然后将其传递给Mongoose:
let toPopulate = [];
if (populateTenders) {
toPopulate.push({
path: 'tender',
select: 'number description shipper carriers type',
model: Tender
});
}
if (populateShippers) {
toPopulate.push({
path: 'shipper',
select: 'company firstName lastName',
model : Shipper
})
}
myModel.find({})
.populate(toPopulate) // Now you populate both Tenders and Shippers, conditionnaly
.exec(...)