집계의 경우 MongoDB에서 집계()를 사용합니다. $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 }