使用Mongodb的常规表达式

时间:2014-07-17 08:44:48

标签: java mongodb spring-mvc

我正在使用Java Spring与Mongodb合作。我需要找到描述字段中存在“经理”一词的文件。我尝试了两种方法

方法1

Query query = new Query();
query.addCriteria(Criteria.where("discription").regex("/\bmanager\b/"));

方法2

Query query = new Query();
Pattern p = Pattern.compile("/\bmanager\b/");
query.addCriteria(Criteria.where("discription").regex(p));

但这些都没有奏效。我尝试使用像这样的mongodb控制台

db.test.find({discription: {$regex: /\bmanager\b/}})

它按照我的预期工作。我的Java代码有什么问题。

2 个答案:

答案 0 :(得分:1)

您不必在正则表达式中添加斜杠,因为正则表达式方法会处理它。所以

Query query = new Query();
query.addCriteria(Criteria.where("description").regex("\bmanager\b"));

应该有用。

答案 1 :(得分:0)

看起来您可以直接传递正则表达式字符串而不使用Pattern.compile()。你试过了吗?