聚合:在嵌套文档(嵌套对象)中对日期进行分组并显示计数?
mongodbdatabasebig data analytics更新于 2026/1/6 10:07:17
要进行聚合,请使用 MongoDB 中的 aggregate()。使用 $group 对日期进行分组。让我们创建一个包含文档的集合。 −
> db.demo717.insertOne(
... {
... "shippingdetails":
... [
... {
... duedate:"2020-04-29 22:33:04",
... },
... {
... duedate:"2020-03-29 22:33:04",
... },
... {
... duedate:"2020-04-29 22:33:04",
... },
... {
... duedate:"2020-01-29 22:33:04",
... }
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea9b3cd85324c2c98cc4c30")
}
借助 find() 方法显示集合中的所有文档 −
> db.demo717.find().pretty();
这将产生以下输出 −
{
"_id" : ObjectId("5ea9b3cd85324c2c98cc4c30"),
"shippingdetails" : [
{
"duedate" : "2020-04-29 22:33:04"
},
{
"duedate" : "2020-03-29 22:33:04"
},
{
"duedate" : "2020-04-29 22:33:04"
},
{
"duedate" : "2020-01-29 22:33:04"
}
]
}
以下是嵌套文档(嵌套对象)中日期分组的聚合查询 −
> db.demo717.aggregate(
... {
... $unwind:"$shippingdetails"},
... {
... $group: {
... _id: "$shippingdetails.duedate",
... count: {
... $sum: 1
... }
... }
... }
... )
这将产生以下输出 −
{ "_id" : "2020-01-29 22:33:04", "count" : 1 }
{ "_id" : "2020-03-29 22:33:04", "count" : 1 }
{ "_id" : "2020-04-29 22:33:04", "count" : 2 }

