我试图从输入接收从窗体生成搜索。以编程方式构建动态查询与猫鼬
router.get('/data', function(req, res) {
var firstName=req.body.firstName,
lastName=req.body.lastName,
companyName=req.body.companyName,
email=req.body.email;
});
我想从这些数值构建查询,但如果字段没有价值,我显然不希望把它列入搜索(搜索“”会改变结果)
我已经尝试了几个不同的东西,比如建立一个字符串的地方:
mongoose.model('customers').find({QUERY STRING WOULD GO HERE} ,function(err, data) {
if (err) return console.error(err);
console.log(data);
});
但是,这似乎并没有正常工作。我也试过这样的“叠加”的搜索查询:
if(firstName !="") {
mongoose.model('customers').find({firstName: firstName})
}
,然后执行这样的搜索:
mongoose.model('customers').exec(function(err, customer){
console.log(customer);
});
但是,这会导致500错误(我不知道是否有任何更多的信息我可以从他们那里得到)。
请帮助新手动态地构建一个猫鼬的搜索查询:(
取而代之的是查询字符串的,你尝试构造查询对象? (如果你是JavaScript新手,其他语言称之为“哈希”或“映射”或“数组”) – slebetman 2015-04-06 06:27:40
@slebetman你是完全正确的。我查找了如何创建一个对象,但只是没有做好它:( – 2015-04-06 20:27:48