如何在Mongoose中填充多个模式



请在这里给我解决方案我打算写一个公共函数来共享搜索查询,我使用MongoDB + Mongoose

但是有一个问题,我不知道如何动态地使用populate()

,

const findData = async(model, populate, params) => {
return await model
.find(params)
.populate() //issue????
};

我想填充到许多其他模式,但仍然无法找到一种方法来传递填充到这个函数动态(即:我可以填充到Schema它是在调用这个函数传递)?谢谢你推荐我多谢

你可以在一个数组中收集所有的填充命令并调用。populate并在每个人的查询中使用它并在你的数组中添加push new命令所有这些将你的填充数组发送到你的mongoose查询中,如:

const findData = async(model, populate, params) => {
const popQuery = [];
if(req.query = "example1") {
popQuery.push({path:"user" , select: "name"})
}
if(req.query = "example2") { 
popQuery.push({path:"model2" , select: "name lastName age"})
}
if(req.query = "example3") {
popQuery.push({path:"model3" , select: "everything"})
}
return await model
.find(params)
.populate(popQuery) //issue????
};

最新更新