如何使用MongoDB的Java驱动程序组合两个查询或搜索不同的字段

时间:2018-04-06 13:19:22

标签: java mongodb mongodb-query mongodb-java

如何组合两个查询(比如query1和query2)来搜索mongodb集合。

FindIterable<Document> docs = col.find(query);

以上代码仅搜索一个查询。或者是否有其他方法可以找到满足不同查询的文档?

1 个答案:

答案 0 :(得分:0)

您可以组合谓词。

使用Filters.and(),例如......

Bson queryOne = Filters.eq("name", "Bill");
Bson queryTwo = Filters.gt("age", 25);
Bson query = Filters.and(queryOne, queryTwo);
FindIterable<Document> documents = collection.find(query);

...将返回与queryOne queryTwo匹配的文档。

同样,使用Filters.or() ...

Bson queryOne = Filters.eq("name", "Bill");
Bson queryTwo = Filters.gt("age", 25);
Bson query = Filters.or(queryOne, queryTwo);
FindIterable<Document> documents = collection.find(query);

...将返回与queryOne queryTwo匹配的文档。