我試圖通過日期時間的日期字段搜索集合和組記錄。 我知道pymongo將這些轉換爲背景上的正確類型(ISODate或類似的東西)。pymongo group by datetime
問題是,因爲datetime對象有日期,時間,時區..我如何告訴組操作員只使用日期部分?因爲否則我沒有得到所需的分組,因爲時間阻止了將同一天,每月,每年的記錄分組在一起。
db.test.aggregate([
{"$group": {
"_id": "$date",
"count": {"$sum": 1}
}},
{"$limit": 10}])
結果:
{u'ok': 1.0,
u'result': [
{u'_id': datetime.datetime(2014, 2, 15, 18, 49, 9, tzinfo=<bson.tz_util.FixedOffset object at 0x318f210>),
u'count': 1},
{u'_id': datetime.datetime(2014, 2, 15, 18, 36, 38, tzinfo=<bson.tz_util.FixedOffset object at 0x318f210>),
u'count': 1},
{u'_id': datetime.datetime(2014, 2, 15, 18, 23, 56, tzinfo=<bson.tz_util.FixedOffset object at 0x318f210>),
u'count': 1}]}
這將是很好的控制用於組的日期時間信息,
- 組僅按照日期
- 按日期和時間
- 按日期,小時,分鐘組
- 等
有什麼樣:(或告知使用最新的一些方法只)
db.test.aggregate([
{"$group": {
"_id": "$date.date()",
"count": {"$sum": 1}
}},
{"$sort": "_id"}
])
或者,也許有這個處理,任何想法的另一種方式? 謝謝。
謝謝!這很好(我已經修復了$ substr的括號) – Sebastian