如何组合两个查询(比如query1和query2)来搜索mongodb集合。
FindIterable<Document> docs = col.find(query);
以上代码仅搜索一个查询。或者是否有其他方法可以找到满足不同查询的文档?
答案 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
匹配的文档。