Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于获取总计数的MongoDB聚合查询_Javascript_Mongodb - Fatal编程技术网

Javascript 用于获取总计数的MongoDB聚合查询

Javascript 用于获取总计数的MongoDB聚合查询,javascript,mongodb,Javascript,Mongodb,我试图找到每天所有佣金的总和,但我不知道该怎么办,以下是mongoDB文档: "operationData" : { "topUp" : { "topUpId" : "20160520182653940+043000001792098779520", "phoneNumber" : "792098779", "commission" : 4, } } } { "_id" : 2, "dateTime" : ISOD

我试图找到每天所有佣金的总和,但我不知道该怎么办,以下是mongoDB文档:

"operationData" : {
    "topUp" : {
        "topUpId" : "20160520182653940+043000001792098779520",
        "phoneNumber" : "792098779",
        "commission" : 4,
    }
}
}

{
    "_id" : 2,
    "dateTime" : ISODate("2016-06-20T13:56:53.970Z"),
    "operationData" : {
        "topUp" : {
            "topUpId" : "20160520182653940+043000001792098779520",
            "phoneNumber" : "792098779",
            "commission" : 6,
        }
    }
}

{
    "_id" : 3,
    "dateTime" : ISODate("2016-06-20T13:56:53.970Z"),
    "operationData" : {
        "topUp" : {
            "topUpId" : "20160520182653940+0430000017920987345243",
            "phoneNumber" : "792098779",
            "commission" : 5,
        }
    }
}

您需要使用datetime操作符

名称描述

  • $dayOfYear以1到366(闰年)之间的数字形式返回日期的日期
  • $dayOfMonth以1到31之间的数字形式返回日期的月份日期
  • $dayOfWeek以1(星期日)到7(星期六)之间的数字形式返回日期的星期几
  • $year以数字形式返回日期的年份(例如2014年)
  • $month以1(一月)到12(十二月)之间的数字形式返回日期的月份
  • $week将日期的周数返回为0(一年中第一个星期日之前的部分周)和53(闰年)之间的数字
  • $hour以0到23之间的数字形式返回日期的小时数
  • $minute以0到59之间的数字形式返回日期的分钟数
  • $second以0到60(闰秒)之间的数字形式返回日期的秒数
  • $millissecond以0到999之间的数字形式返回日期的毫秒数
  • $dateToString以格式化字符串的形式返回日期
  • 所以你可以有这个片段

    db.operationData.aggregate([{
                $group : {
                    _id : {
                        dayOfYear : {
                            $dayOfYear : "$dateTime"
                        },
                        year : {
                            $year : "$dateTime"
                        }
                    },
                    commission : {
                        $sum : "$operationData.topUp.commission"
                    }
                }
            }
        ])
    

    你已经试过什么了吗?可能是被骗了你觉得我的答案有用吗?