我正在使用Python和MongoDB构建应用程序。我想添加一个新集合,其中包含有关我一直在收集的数据的一些统计信息。我已经能够使用查询使它发挥作用,但是似乎我应该能够将这项工作分担到Aggregation Framework上。
以下是我的文档的示例:
foundFile = {
"_id": ObjectID("5b81abb7bc1e7479981a042f")
"fileType": ".ico",
"timeStamp": 1535659134, # unix timestamp
"size": 929191 # size in bytes
}
我想知道两件事:
这是Aggregate Framework的优点吗?还是应该坚持查询?
感谢阅读。
更新
对于像我这样刚开始使用Aggregation Framework的任何人,MongoDB Compass的收集页面上都有一个选项卡,可帮助您构建聚合并将其导出为所需的语言,我发现,这种语言对确定聚合非常有帮助。找出为什么我的查询不起作用。
答案 0 :(得分:2)
您可以使用以下汇总。
db.colname.aggregate([
{"$match":{"timeStamp":{"$gte":time24hoursago,"$lte":currenttime}}},
{"$group":{
"_id":"$fileType",
"ucount":{"$sum":1},
"asize":{"$sum":"$size"}
}}
])