我正在尝试使用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));
但它不起作用
答案 0 :(得分:2)
您可以使用^(abc)
例如
Pattern compile = Pattern.compile("^(abc)", Pattern.CASE_INSENSITIVE);