我有一个mongodb集合,其集合包含标记和日期字段。
我想计算此查询可以完成的所有标记的数量
db.collection.count( { tags: "abc" })
但我想将所有独特标签统计在一起。而且我还想在日期中放置where条件,就像我想查询某个时间段一样。
答案 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