我正在使用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代码有什么问题。
答案 0 :(得分:1)
您不必在正则表达式中添加斜杠,因为正则表达式方法会处理它。所以
Query query = new Query();
query.addCriteria(Criteria.where("description").regex("\bmanager\b"));
应该有用。
答案 1 :(得分:0)
看起来您可以直接传递正则表达式字符串而不使用Pattern.compile()
。你试过了吗?