我必须编写一个查询,作为查找位置的自动完成。 else语句在寻找合适的国家方面效果良好,但是当用户编写“德国,柏林”时,该算法抛出了其他可能拥有“柏林”城市的国家。我需要它只搜索位于例如“德国”的城市。有两个条件的猫鼬正则表达式搜索
只是为了清楚标志变量在搜索参数字符串中有一个逗号时变为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()
请告诉我的错误你好吗? – abdulbarik
关于第二个代码,我得到了 World.findOne({{country:{$ regex:country}},{cities:{$ regex:city}}})。ex ^ SyntaxError:意外的标记{ –