我想在查询模型时动态指定where子句中的查询列,这可能吗?我尝试了几种不同的运气方式。如果我运行这样的东西,我会得到Logic db错误,因为它正在寻找一个名为dataTypeToQuery的列。
var dataTypeToQuery = 'age';
var dataToQuery = 21;
User.find()
.where({ dataTypeToQuery: dataToQuery })
.limit(100)
.sort('name')
.exec(function(err, users) {
// Do stuff here
});
答案 0 :(得分:0)
尝试在函数调用之外创建where参数对象,然后使用数组语法设置键和值。
var whereParams = {};
whereParams[dataTypeToQuery] = dataToQuery;
User.find()
.where(whereParams)
.limit(100)
.sort('name')
.exec(function(err, users) {
// Do stuff here.
});
答案 1 :(得分:0)
完美答案。它使我的工作更容易根据条件动态添加参数。您可以看到以下单个搜索多个参数:
fullCriteriaSearch:function (req, res) {
var city = req.param("city");
var zip = req.param("zip");
var name= req.param("name");
var page = req.param("page");
var perPage = 10;
var query={}
if(city!=undefined){
query['locationCity'] = city;
}
if(zip!=undefined){
query['locationZip'] = zip;
}
if(name!=undefined){
query['name'] = name;
}
User.find({ where: query,skip:page*perPage,limit:perPage}).populateAll()
.then(function (users) {
return res.json(users)
})
}