【问题标题】:MongoDb Query - Count + where conditionMongoDb 查询 - 计数 + where 条件
【发布时间】:2018-02-22 10:51:07
【问题描述】:

我有一个 mongodb 集合,其中包含带有标签和日期字段的集合。

我想统计这个查询可以完成的所有标签的数量

db.collection.count( { tags: "abc" })

但我想将所有唯一标签的计数放在一起。而且我还想在日期上加上 where 条件,就像我想查询某个时间段一样。

【问题讨论】:

    标签: mongodb database


    【解决方案1】:

    一个非常简单的方法:

    db.collection.distinct("tags", {dateField: {$gt: dateValue}}).forEach(function (tag) {
        var count = db.collection.count({"tags" : tag})
    })
    

    【讨论】:

      【解决方案2】:

      您可以使用 mongoDD 聚合框架来解决这个问题 (http://docs.mongodb.org/manual/applications/aggregation/)。以防万一您没有完成所有工作。您总是可以选择通过 map-reduce (http://docs.mongodb.org/manual/applications/map-reduce/) 来实现。我已经使用 map-reduce 来构建自己的搜索选项以满足特殊要求。因此,任何时间点 map-reduce 都将帮助您做您想做的事情,而这通过简单的查询是不可能的。我没有提供查询,因为我没有太多信息您希望如何获取数据以及您的集合看起来如何,但这两个选项都将帮助您非常轻松地获取它。

      【讨论】:

        【解决方案3】:

        你应该使用 find 和 count 的组合

        db.collection.find({condition}).count
        

        【讨论】:

          猜你喜欢
          • 2022-11-09
          • 1970-01-01
          • 2015-12-25
          • 2021-09-18
          • 2014-10-04
          • 1970-01-01
          • 2023-01-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多