我試圖從輸入接收從窗體生成搜索。以編程方式構建動態查詢與貓鼬
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