这个问题与另一个帖子非常相似
我基本上想使用mongodb版本的sql“ like”’%m%’运算符
但是在我的情况下,我正在为mongodb使用java api,而另一篇文章使用的是mongodb shell
我尝试了其他线程中发布的内容,并且工作正常
db.users.find({"name": /m/})
但是在Java中,我在BasicDBObject上使用put方法,并将其传递到DBCollections对象的find()方法中
BasicDBObject q = new BasicDBOBject(); q.put("name", "/"+m+"/"); dbc.find(q);
但这似乎不起作用。
有人有什么想法吗?
您需要传递一个JavaRegEx实例(java.util.regex.Pattern):
BasicDBObject q = new BasicDBObject(); q.put("name", java.util.regex.Pattern.compile(m)); dbc.find(q);
发送到服务器时,它将转换为MongoDB正则表达式以及任何RegEx标志。