我该如何进行搜索 db.collection.find( { foo: /^bar$/i } );在 mongo 但使用 Mongo Java 驱动程序

How can I do this search db.collection.find( { foo: /^bar$/i } ); on mongo but using Mongo Java Driver

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

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

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

它有效,但它 return 什么都没有。不是 return 包含 "abcdef" 的对象,如果我们有一个带有 foo:"abc" 的对象,它只有 return 一个

但在 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));

但是不行

您可以使用类似 ^(abc) 的模式,例如

    Pattern compile = Pattern.compile("^(abc)", Pattern.CASE_INSENSITIVE);