这个问题与另外post个问题非常相似

我基本上想使用mongodb版本的sql"like""%m%"操作符

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

我try 了另一个帖子中发布的内容,效果很好

db.users.find({"name": /m/})

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

BasicDBObject q = new BasicDBOBject();
q.put("name", "/"+m+"/");
dbc.find(q);

但这似乎不起作用.

有人有什么 idea 吗?

推荐答案

您需要传递一个Java正则表达式的实例(java.util.regex.Pattern):

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

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

Mongodb相关问答推荐

向MongoDB数据库添加关键字,其值基于其他条目

MongoDB:就地分组嵌套数组的元素

MongoDB获取所有文档谁的S子文档只包含一个特定值?

如何在 mongodb 查找的外键中使用正则表达式

Mongodb Timeseries / Golang - ['timestamp' 必须存在并包含有效的 BSON UTC 日期时间值]

MongoDB 将 JSON 字符串转换为数组[{obj1},{obj2}]的实际对象

Mongoose 返回包含属性内任何位置的值的所有文档

使用绝对类型在 Typescript 中编写 Mongoose 的类型化模型和模式的类和接口

mongo _id 字段重复键错误

MongoDB 2.1 聚合框架总和匹配名称的数组元素

mongodb上不区分大小写的查询

mongodb 模式设计命名约定

如何使用 mongoexport 导出排序数据?

MongoDB:单个数据库处理程序的 >5 个打开连接

MongoDB 存储 ObjectId 的数组

MongoDB - 我如何找到另一个集合中的文档未引用的所有文档

MEAN 堆栈文件上传

如何在 Rails 中混合使用 mongodb 和传统数据库?

无法使用命令写入模式错误,降级到兼容模式

MongoDb - 利用多 CPU 服务器进行写入繁重的应用程序