Оператор $ regularExpression в Mongodb не работает - PullRequest
0 голосов
/ 04 августа 2020

Когда я запускаю запрос,

db.getCollection('resources').find({
  "owner.firstName": {
    "$regularExpression": {
      "pattern": "^Del",
      "options": "i"
    }
  }
})

он показывает ошибку mssg,

Error: error: {
"ok" : 0,
    "errmsg" : "unknown operator: $regularExpression",
    "code" : 2,
    "codeName" : "BadValue"
}

Примечание: версия Mongodb - 4.4.0-rc13, этот запрос получен из,

private List<Criteria> buildNameSearch(String type,String name){
        String names[] = name.split(" ");
        ArrayList<Criteria> cr = new ArrayList<Criteria>();
        for (String nm : names) {
            Criteria criteria = new Criteria();
            criteria.orOperator(Criteria.where(type+".firstName").regex("^"+nm),
                    Criteria.where(type+".lastName").regex("^"+nm));
            cr.add(criteria);
        }
        return cr;
    }
Criteria.where(type+".firstName").regex("^"+nm)

Пожалуйста, помогите мне с этим ...

1 Ответ

0 голосов
/ 04 августа 2020
db.getCollection('resources').find({
  "owner.firstName": {
      "$regex": "^Del", //regex and pattern goes here
      "$options": "i". //regex options goes here
    }
  }
})
  1. Используйте $regex вместо $regularExpression - $ regex

  2. Нет pattern.

  3. Используйте $ options

Ваш весенний запрос выглядит хорошо.

...