Mongodb Meteor中用于求和和和计数的按函数分组
我正在构建一个简单的应用程序来跟踪我的企业完成的所有购买,我还想跟踪每个月完成的总购买量Mongodb Meteor中用于求和和和计数的按函数分组,mongodb,meteor,aggregation-framework,Mongodb,Meteor,Aggregation Framework,我正在构建一个简单的应用程序来跟踪我的企业完成的所有购买,我还想跟踪每个月完成的总购买量 { "id": 264, "Name": "Item 1", "Price": US$ 15, "Date": 12 May 2015 }, { "id": 63, "Name": "Item 3", "Price": US$ 12, "Date": 19 May 2015 }, { "id": 16, "Name": "Ite
{
"id": 264,
"Name": "Item 1",
"Price": US$ 15,
"Date": 12 May 2015
}, {
"id": 63,
"Name": "Item 3",
"Price": US$ 12,
"Date": 19 May 2015
}, {
"id": 16,
"Name": "Item 1",
"Price": US$ 22.5,
"Date": 21 May 2015
}, {
"id": 4,
"Name": "Item 2",
"Price": US$ 27.75,
"Date": 21 May 2015
}, {
"id": 4,
"Name": "Item 2",
"Price": US$ 27.75,
"Date": 6 June 2015
},
我需要显示购买的金额
每月
{
"Month": "May",
"Total": 77.25
}, {
"Month": "June",
"Total": 27.75
}
每当添加新项目时,如果您的数据为以下格式,则应实时更新每个月的总金额:
/* 0 */
{
"_id" : 264,
"Name" : "Item 1",
"Price" : 15,
"Date" : ISODate("2015-05-12T13:45:39.736+05:30")
}
/* 1 */
{
"_id" : 63,
"Name" : "Item 3",
"Price" : 12,
"Date" : ISODate("2015-05-19T13:45:39.736+05:30")
}
/* 2 */
{
"_id" : 16,
"Name" : "Item 1",
"Price" : 22.5,
"Date" : ISODate("2015-05-21T13:45:39.736+05:30")
}
/* 3 */
{
"_id" : 4,
"Name" : "Item 2",
"Price" : 27.75,
"Date" : ISODate("2015-05-21T13:45:39.736+05:30")
}
/* 4 */
{
"_id" : 5,
"Name" : "Item 2",
"Price" : 27.75,
"Date" : ISODate("2015-06-06T13:45:39.736+05:30")
}
您可以使用以下聚合函数:
db.collectionName.aggregate(
{ $project : { month : { $month : "$Date" }, price : "$Price"} },
{ $group : { _id : "$month" , "Total" : { $sum : "$price"}}},
{ $project : { Month : "$_id", "Total" : "$Total", "_id" : 0} }
)
输出:
/* 0 */
{
"result" : [
{
"Total" : 27.75,
"Month" : 6
},
{
"Total" : 77.25,
"Month" : 5
}
],
"ok" : 1
}
稍后将月份索引替换为字符串。您是否可以向我们展示您解决此问题的任何尝试?您是否可以发布存储在数据库中的真实数据?相关:聚合需要在Meteor上做更多工作。看见