MongoDb查询 - 计数+条件

时间:2013-03-30 02:50:44

标签: mongodb database

我有一个mongodb集合,其集合包含标记和日期字段。

我想计算此查询可以完成的所有标记的数量

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

但我想将所有独特标签统计在一起。而且我还想在日期中放置where条件,就像我想查询某个时间段一样。

3 个答案:

答案 0 :(得分:2)

一种非常简单的方法:

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

答案 1 :(得分:1)

您可以使用mongoDD聚合框架来解决此问题(http://docs.mongodb.org/manual/applications/aggregation/)。如果你没有完成所有事情。你总是可以通过map-reduce(http://docs.mongodb.org/manual/applications/map-reduce/)来做到这一点。我已经使用map-reduce来构建我自己的搜索选项以满足特殊要求。所以任何时间点map-reduce都会帮助你做你想做的事情,这是简单的查询无法做到的。我没有给出查询,因为我没有太多信息你想要如何获取数据以及你的集合是怎样的,但这两个选项都可以帮助你很容易地得到它。

答案 2 :(得分:0)

您应该使用find和count

的组合
db.collection.find({condition}).count