我怎样才能搜索db.collection.find({foo:/ ^ bar $ / i});在mongo上但使用Mongo Java Driver

时间:2015-01-16 15:01:21

标签: java regex mongodb case-insensitive mongodb-java

我正在尝试使用java驱动程序在mongodb中进行不区分大小写的查询。我在一个名为foo的字段中有一个字符串,例如“abcdef”,当我搜索“abc”时,搜索必须返回空,但它总是返回包含“abcdef”的元素。

如果我在mongo控制台中执行此操作

db.collection.find( { foo: /^abc$/i } )

它有效,它什么都不返回。不返回包含“abcdef”的对象,如果我们有一个带有foo的对象:“abc”它只返回一个

但在java驱动程序中我尝试过。

BasicDBObject query = new BasicDBObject();
query.put("foo",  "^"+abc+"$");
query.put("$options", "i");

BasicDBObject query = new BasicDBObject();
query.put("foo", Pattern.compile("/^"+abc+"$/",
              Pattern.CASE_INSENSITIVE));

但它不起作用

1 个答案:

答案 0 :(得分:2)

您可以使用^(abc)例如

之类的模式
    Pattern compile = Pattern.compile("^(abc)", Pattern.CASE_INSENSITIVE); 
相关问题