javascript - 是否可以有条件地链接 populate() 方法调用?
问题描述
我正在为我的应用程序创建一个数据库服务,但为一些代码。有很多人口。那么是否可以添加如下内容:
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, conditionally
.exec(...)
推荐阅读
- elasticsearch - 如何在多个 jdbc 插件行结果上只运行一次 jdbc_streaming 过滤器
- c - c中的父子共享缓冲区溢出
- angular - 使用 Angular 12 构建库包时超出最大调用堆栈大小
- python - 移动
- c++ - 如何用可变参数函数覆盖 C++ 类中的运算符?
- php - Laravel Blade Foreach 仅显示 10 个项目
- python - 我希望客户将 DXF 和 DWG 文件上传到我的网站,脚本应该能够自动计算价格
- linux - 问:如何在 tcl/tk 脚本中编写 file.CSV
- java - 按字段分组并计算java 8中的非空字段
- amazon-web-services - 如何将 Amazon 状态语言 json 渲染到图像?