場所を見つけるためのオートコンプリートとして機能するクエリを書く必要があります。 elseステートメントは適切な国を見つけるのにうまくいきますが、ユーザーが "ドイツ、ベルリン"と書くと、アルゴリズムは "ベルリン"と呼ばれる都市を持つ他の国を投げます。例えば "ドイツ"にある都市だけを検索する必要があります。2つの条件でマングース正規表現を検索する
フラグがクリアされるようにするには、検索パラメータの文字列にカンマがある場合に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
2番目の2番目のコードでは World.findOne({{country:{$ regex:country}}、例:{$ regex:city}}})。ex ^ SyntaxError:予期しないトークン{ –