【问题标题】:How to search by text in Java on Mongo db [duplicate]如何在 Mongo db 上按 Java 文本搜索 [重复]
【发布时间】: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 中做到这一点,那将是重复的
  • 意识到如果您不使用锚定正则表达式搜索(并且具有索引字段),这将搜索集合中的每个文档。慢。

标签: java mongodb


【解决方案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);
猜你喜欢
  • 2018-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多