如何在 Mongo db 上按 Java 文本搜索 [重复]

Posted

技术标签:

【中文标题】如何在 Mongo db 上按 Java 文本搜索 [重复]【英文标题】:How to search by text in Java on Mongo db [duplicate] 【发布时间】:2013-12-06 03:58:00 【问题描述】:

如何在 Java 中为 Mongo DB 编写此查询的等效项:

db.mydata.find($where: "this.fields.name.toLowerCase().indexOf('ar') > 0")

?

该查询用于查找所有包含“AR”(martin、mark 等)的名称。

我目前正在使用QueryBuilder,但它不支持这种查询格式。

有什么想法吗?

【问题讨论】:

@Philipp 如果它实际上提到如何在 JAVA 中做到这一点,那将是重复的 意识到如果您不使用锚定正则表达式搜索(并且具有索引字段),这将搜索集合中的每个文档。慢。 【参考方案1】:

一种选择是使用正则表达式。

Pattern regex = Pattern.compile("ar",  Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
DBObject query = new DBObject("fields.name", regex);
Cursor result = myCollection.find(query);

【讨论】:

你就是男人!谢谢!稍微更正一下:new BasicDBObject("fields.name", regex);

以上是关于如何在 Mongo db 上按 Java 文本搜索 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 java 中检查集合 mongo db? [复制]

Mongo db中的身份验证:如何选择?

如何使用 java 驱动程序更新 mongo db 中的文档字段?

如何在phpstorm的Mongo Explorer插件中按id搜索文档

MongoError: 必须使用 Mongo DB Native NodeJS Driver 对所有 $meta 排序键进行 $meta 投影

如何在(Jasper Studio)的 mongo DB 查询中制作动态/可选过滤器(参数)