【发布时间】:2013-07-15 08:36:42
【问题描述】:
我想从 DB 中跳过一些记录,这些记录在 Java 中有一些字符串(使用 BasicDBOject)。比如说:
“description”是我在名为“comment”的集合中的字段名称
我不希望将“测试消息”作为“描述”字段值的一部分的记录。
【问题讨论】:
-
这将是一个性能不佳的蛮力查询,因为它将无法使用索引,而是会在每个
description上运行正则表达式。
我想从 DB 中跳过一些记录,这些记录在 Java 中有一些字符串(使用 BasicDBOject)。比如说:
“description”是我在名为“comment”的集合中的字段名称
我不希望将“测试消息”作为“描述”字段值的一部分的记录。
【问题讨论】:
description 上运行正则表达式。
请参阅http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-a-set-of-documents-with-a-query 和http://api.mongodb.org/java/current/com/mongodb/QueryBuilder.html#regex%28java.util.regex.Pattern%29 上的文档,因为您自己似乎没有花太多精力研究这个。代码看起来像:
Mongo m = new Mongo();
m.setWriteConcern(WriteConcern.SAFE);
DBCollection c = m.getDB("testdb").getCollection("collection");
Pattern pattern = Pattern.compile("Test Message");
DBObject query = QueryBuilder.start().
QueryBuilder.start("description").regex(pattern).get();
System.out.println(c.find(query).count());
【讨论】: