我敢肯定,我缺少一些相对明显的东西。基本上,尽管使用了 $avg 和 $sum:1 函数,这两个查询返回完全相同的结果,据我了解,第一个查询应该返回先前分组的行数的平均值?
db.bbservicedata.aggregate(
{
$match:{"accesstime" : {"$gte" : ISODate('2012-02-09T01:45:32.962Z') }}
},
{
$match:{"requestModel.serviceName" : "ContentItem"}},
{
$unwind: "$requestModel.methodParams.ContentItemLoggingListModel.items"},
{
$group: {
_id:{
myYear:{$year:"$accesstime"},
myMonth:{$month:"$accesstime"},
myDay:{$dayOfMonth:"$accesstime"}},
count:{$sum:1}}},
{
$group: {
_id: {
year: "$_id.myYear",
month: "$_id.myMonth",
day: "$_id.myDay"},
averagecount : {$avg : "$count"}}},
//{averagecount : {$sum: "$count"}}}***, -- Returns the same result*
{$sort: {averagecount:-1}}
);
任何帮助将不胜感激,在此先感谢!