집계의 경우 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 }