【问题标题】:Multiple count queries in a single mongo query [duplicate]单个 mongo 查询中的多个计数查询 [重复]
【发布时间】:2018-09-12 01:57:23
【问题描述】:

我需要同时使用 3 个不同的条件对同一个集合执行多个计数查询。

Date <= x
Date <= y
Date <= z 

现在,我愿意:

collection.count(query1, function() {
   collection.count(query2, function() {
     collection.count(query3, function() {

有没有一种方法可以在一个 mongodb 查询中完成所有 3 个查询。

【问题讨论】:

    标签: mongodb mongodb-query aggregation-framework


    【解决方案1】:

    在 mongo 3.4 版本中使用 facet:

    db.col.aggregate(
    {"$facet":{
      "count1":[{"$match":query1},{"$count":"count"}],
      "count2":[{"$match":query2},{"$count":"count"}],
      "count3":[{"$match":query3},{"$count":"count"}]
    }})
    

    【讨论】:

    • 嗯.. 非常感谢。恐怕我现在在 2.x 上。
    • 不客气。您可以使用 $group 阶段来计算计数,如 here 中所述为 2.x
    • AWS 文档数据库 (docdb/ddb) 尽管有 3.6 API,但还不支持 $facet。太好了……希望我能帮助另一个人不要碰壁。
    猜你喜欢
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2019-02-04
    • 2010-11-19
    • 2011-09-19
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多