【发布时间】:2018-04-06 13:19:21
【问题描述】:
如何结合两个查询(比如说 query1 和 query2)来搜索一个 mongodb 集合。
FindIterable<Document> docs = col.find(query);
上面的代码只搜索一个查询。或者有没有其他方法可以找到满足不同查询的文档?
【问题讨论】:
标签: java mongodb mongodb-query mongodb-java
如何结合两个查询(比如说 query1 和 query2)来搜索一个 mongodb 集合。
FindIterable<Document> docs = col.find(query);
上面的代码只搜索一个查询。或者有没有其他方法可以找到满足不同查询的文档?
【问题讨论】:
标签: java mongodb mongodb-query mongodb-java
您可以组合谓词。
使用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的文档。
【讨论】: