请在这里给我解决方案我打算写一个公共函数来共享搜索查询,我使用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????
};