将 NodeJS 与 Mongoose 和 MongoDB 用于我的后端。
我正在尝试这样做(示例):
controller.getUsersSearchAll = function(req, res){
let last = req.query.last;
let min = req.query.minPrice;
let max = req.query.maxPrice;
if(last && min && max){
User.find()
.where('last_name').equals(last)
.where('age').gte(min).lte(max)
.exec(function(err, result){
res.json(result);
});
}else if(last){
User.find()
.where('last_name').equals(last)
.exec(function(err, result){
res.json(result);
});
}
};
它有效,但以这种方式,它是静态的。问题是当我有 10 个或更多条件时,我必须应用许多 if 条件。
如何将其转换为动态方式?有没有聪明的办法?
为什么不将基本查询存储在 var 中,然后添加到其中?
var query = User.find().where('last_name').equals(last)
// editing to show adding multiple where conditons
if(condition_1){
query = query.where('age').gte(10)
}
if (condition_2){
query = query.where('age').gte(50)
}
if (condition_3){
query = query.where('age').gte(100)
}//...etc for any other where clauses you need to add
//Then exec your query and do something with the data
query.exec(function(err, data){})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句