[英]Mongoose regex search with two conditions
我必須編寫一個查詢,該查詢可以自動查找位置。 else語句可以很好地找到正確的國家/地區,但是例如,當用戶輸入“ Germany,Berlin”時,該算法會拋出其他可能擁有“ Berlin”城市的國家。 我只需要搜索例如“德國”中的城市。
為了清楚起見,當搜索參數字符串中有逗號時,標志變量將變為true。 然后在鄉村和城市分裂。
if(flag){
World.findOne().or([{name:{$regex:country}},{cities: {$regex:city}}]).exec(function (err, users) {
if (err) return console.error(err);
console.log(users);
res.send(users);
});
}else{
World.findOne({name:{$regex:val}}, {cities: {$slice: 10}}).exec(function (err, users) {
if (err) return console.error(err);
console.log(users);
res.send(users);
});
}
我也嘗試過,但是會引發編譯錯誤:
if(flag){
World.findOne({{country:{$regex:country}},{cities: {$regex:city}}}).exec(function (err, users) {
if (err) return console.error(err);
console.log(users);
res.send(users);
});
嘗試過相同的操作,刪除了findOne()中的外部括號
我認為您沒有提供適當的query
值。
嘗試這個
if (flag) {
World.find({
country: {
$regex: country
},
cities: {
$regex: city
}
}).exec(function(err, users) {
if (err) return console.error(err);
console.log(users);
res.send(users);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.