簡體   English   中英

有兩個條件的貓鼬正則表達式搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM