2013-03-30 89 views
1

我有一個具有標籤和日期字段集合的mongodb集合。MongoDb查詢 - 計數+在哪裏條件

我想指望它可以通過此查詢

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

完成所有標籤的數量,但我想獲得的所有獨特標籤的計數在一起。而且我還想在日期中添加where條件,因爲我想查詢一段時間。

回答

1

一個非常簡單的方法:

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

您可以使用mongoDD Aggregation框架來解決此問題(http://docs.mongodb.org/manual/applications/aggregation/)。如果你沒有完成所有的事情。您始終可以通過map-reduce(http://docs.mongodb.org/manual/applications/map-reduce/)執行此操作。我已經使用map-reduce爲特殊需求構建了我自己的搜索選項。因此,任何時間點map-reduce都可以幫助你做你想做的事情,這是通過簡單的查詢無法實現的。我沒有給出查詢,因爲我沒有太多的信息想要如何獲取數據,以及您的集合是怎樣的,但這兩個選項都可以幫助您輕鬆獲取。

0

您應該使用查找的組合和計數

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