Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 날짜별로 그룹화하시겠습니까?

<시간/>

집계 프레임워크를 사용하여 MongoDB에서 날짜별로 그룹화할 수 있습니다. 먼저 몇 가지 문서로 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다.

> db.groupByDateDemo.insertOne({"UserLoginDateTime":new ISODate()});{ "승인됨":true, "insertedId":ObjectId("5c6ee4df6fd07954a4890695")}> db.groupByLoginDateOne(. ":new ISODate("2019-01-3115:20:09.234Z")});{ "확인됨" :true, "insertedId" :ObjectId("5c6ee51c6fd07954a4890696")}> db.groupByLoginOneDate("UserLoginOneDate." :new ISODate("2017-04-2116:12:13.240Z")});{ "승인됨" :true, "insertedId" :ObjectId("5c6ee5336fd07954a4890697")}> db.groupBytOneDateDemo.ins 새로운 ISODate("2016-05-2519:11:21.130Z")});{ "승인됨" :true, "insertedId" :ObjectId("5c6ee54b6fd07954a4890698")}> db.groupByDateDemo."UserLogin ISODate("2016-05-2519:11:21.130Z")});{ "승인됨" :true, "insertedId" :ObjectId("5c6ee8de6fd07954a4890699")}> db.groupByDateDemo.insertOne ()});{ "승인됨" :true, "insertedId" :ObjectId("5c6ee8e76fd07954a489069a")} 

find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다.

> db.groupByDateDemo.find().pretty();

다음은 출력입니다.

{ "_id":ObjectId("5c6ee4df6fd07954a4890695"), "UserLoginDateTime":ISODate("2019-02-21T17:50:26.076Z")}{ "_id":ObjectId("5c6ee51") :ISODate("2019-01-31T15:20:09.234Z")}{ "_id" :ObjectId("5c6ee5336fd07954a4890697"), "UserLoginDateTime" :ISODate("2017-04-21T13.)}{2017-04-234Z" "_id":ObjectId("5c6ee54b6fd07954a4890698"), "UserLoginDateTime":ISODate("2016-05-25T19:11:21.130Z")}{ "_id":ObjectId("5c679556fd") 2016-05-25T19:11:21.130Z")}{ "_id":ObjectId("5c6ee8e76fd07954a489069a"), "UserLoginDateTime":ISODate("2019-02-21T18:07:35") 

다음은 MongoDB에서 날짜별로 그룹화하는 쿼리입니다.

> db.groupByDateDemo.aggregate([... { $group:{... _id:{... $add:[... { $dayOfYear:"$UserLoginDateTime"},... { $ 곱하기:... [400, {$년:"$UserLoginDateTime"}]... }... ]},... NumberOfTimes:{ $sum:1 },... f:{$min:" $UserLoginDateTime"}... }... },... { $sort:{_id:1} },... { $limit:10 },... { $project:{ 날짜:"$f ", NumberOfTimes:1, _id:0} }... ]);

다음은 출력입니다.

{ "NumberOfTimes" :2, "date" :ISODate("2016-05-25T19:11:21.130Z") }{ "NumberOfTimes" :1, "date" :ISODate("2017-04-21T16:12:13.240Z") }{ "NumberOfTimes" :1, "date" :ISODate("2019-01-31T15:20:09.234Z") }{ "NumberOfTimes" :2, "date" :ISODate("2019- 02-21T17:50:23.076Z") }