Spring Mongo создает как запрос

Я могу сопоставить начало строки, т.е. закрыто с ключевыми словами, и это дает мне правильный результат db.post.find({"keywords":"/^clo/"}).pretty() Когда я пытался написать тот же запрос, используя Spring Mongo. Он не работает должным образом. Это дает результат в виде% string %. то есть совпадает в любом месте строки. Я пытаюсь соответствовать только на старте. мой код

String pattern = "/^" + keyword + "/";
Criteria criteria2 = Criteria.where("keywords").is(keyword).regex(pattern);

Где я скучаю?

1 ответ

Решение
  1. Вы можете сделать это так:

    Query.query(Criteria.where("keywords").regex("^clo"))

  2. Или используйте его как собственный запрос:

    new BasicQuery("{'keywords' : '/^clo/'}")

метод is() обеспечивает полное equals, regex() должен быть без / оберток.

Это твоя проблема.

Другие вопросы по тегам