如何使用java api用"like"查询mongodb?

Kho*_*hon 30 java groovy find mongodb

这个问题与另一篇文章非常相似

我基本上想要使用mongodb版本的sql"like"'%m%'运算符

但在我的情况下,我正在使用java api for mongodb,而另一篇文章是使用mongodb shell

我尝试了在另一个帖子中发布的内容并且工作正常

db.users.find({"name": /m/})
Run Code Online (Sandbox Code Playgroud)

但在java中,我在BasicDBObject上使用put方法并将其传递给DBCollections对象上的find()方法

BasicDBObject q = new BasicDBOBject();
q.put("name", "/"+m+"/");
dbc.find(q);
Run Code Online (Sandbox Code Playgroud)

但这似乎没有用.

谁有任何想法?

Bre*_*ams 65

您需要传递Java RegEx的实例(java.util.regex.Pattern):

BasicDBObject q = new BasicDBObject();
q.put("name",  java.util.regex.Pattern.compile(m));
dbc.find(q);
Run Code Online (Sandbox Code Playgroud)

这将在发送到服务器时转换为MongoDB正则表达式,以及任何RegEx标志.