MongoDB中的GroupBy Date来计算重复的日期记录
要计算MongoDB中重复的日期记录,请使用aggregate()和$group。让我们创建一个包含文档的集合-
> db.demo160.insertOne({"DueDate":new ISODate()});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357525fdf09dd6d0853a04")
}
> db.demo160.insertOne({"DueDate":new ISODate("2019-01-11")});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357532fdf09dd6d0853a05")
}
> db.demo160.insertOne({"DueDate":new ISODate()});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357534fdf09dd6d0853a06")
}
> db.demo160.insertOne({"DueDate":new ISODate("2019-01-11")});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357538fdf09dd6d0853a07")
}
> db.demo160.insertOne({"DueDate":new ISODate("2020-04-10")});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357542fdf09dd6d0853a08")
}在find()方法的帮助下显示集合中的所有文档-
> db.demo160.find();
这将产生以下输出-
{ "_id" : ObjectId("5e357525fdf09dd6d0853a04"), "DueDate" : ISODate("2020-02-01T12:55:01.983Z") }
{ "_id" : ObjectId("5e357532fdf09dd6d0853a05"), "DueDate" : ISODate("2019-01-11T00:00:00Z") }
{ "_id" : ObjectId("5e357534fdf09dd6d0853a06"), "DueDate" : ISODate("2020-02-01T12:55:16.787Z") }
{ "_id" : ObjectId("5e357538fdf09dd6d0853a07"), "DueDate" : ISODate("2019-01-11T00:00:00Z") }
{ "_id" : ObjectId("5e357542fdf09dd6d0853a08"), "DueDate" : ISODate("2020-04-10T00:00:00Z") }以下是在MongoDB中按日期分组的查询-
> db.demo160.aggregate([
... { $group: {
... _id: {
... $add: [
... { $dayOfYear: "$DueDate"},
... { $multiply:
... [400, {$year: "$DueDate"}]
... }
... ]},
... Frequency: { $sum: 1 },
... d: {$min: "$DueDate"}
... }
... },
... { $sort: {_id: 1} },
... { $limit: 100},
... { $project: { date: "$d", Frequency: 1, _id: 0} }
... ]);这将产生以下输出-
{ "Frequency" : 2, "date" : ISODate("2019-01-11T00:00:00Z") }
{ "Frequency" : 2, "date" : ISODate("2020-02-01T12:55:01.983Z") }
{ "Frequency" : 1, "date" : ISODate("2020-04-10T00:00:00Z") }热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短