【问题标题】:How can I combine two queries or search for different fields using MongoDB's Java driver如何使用 MongoDB Java 驱动程序组合两个查询或搜索不同的字段
【发布时间】:2018-04-06 13:19:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: java mongodb mongodb-query mongodb-java


    【解决方案1】:

    您可以组合谓词。

    使用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的文档。

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 2016-02-11
      相关资源
      最近更新 更多