數(shù)據(jù)類型:{'name':'tom','date':datetime.datetime(2017,7,1,11,35)}{'name':'tom','date':datetime.datetime(2017,7,1,12,25)}{'name':'tom','date':datetime.datetime(2017,7,3,13,32)}{'name':'bob','date':datetime.datetime(2017,7,1,15,37)}{'name':'bob','date':datetime.datetime(2017,7,2,9,15)}{'name':'sue','date':datetime.datetime(2017,7,1,17,15)}{'name':'sue','date':datetime.datetime(2017,7,2,12,25)}想要按照日期來進(jìn)行聚合統(tǒng)計(jì)出每個(gè)人每天有幾條記錄,希望結(jié)果是這樣的:{'date':'2017-7-1','name':['tom':1,'bob':1,'sue':1]}{'date':'2017-7-2','name':['bob':1,'sue':1]}{'date':'2017-7-3','name':['bob':1,'sue':1]}困惑了好幾天了,按照日期來分組弄出來了,但是計(jì)數(shù)不曉得怎么弄db.coll.aggregate([{'$group':{'_id':{'$dateToString':{'format':'%Y-%m-%d','date':'$date'}}}}])這樣把日期給分組了,但是對‘name’進(jìn)行計(jì)數(shù),卻不曉得怎么弄謝謝樓下兩位的回答,這樣已經(jīng)解決了問題。抱歉上面的格式錯(cuò)了,應(yīng)該是這個(gè){'date':'2017-7-1','name':{'tom':1,'bob':1,'sue':1}}我用的python,另外定義一個(gè)函數(shù)就可以轉(zhuǎn)換過來了.格式從語言層面就可以解決了,s=[{"_id":"2017-08-03","name":[{"name":"tom","count":1}]},{"_id":"2017-08-01","name":[{"name":"sue","count":1},{"name":"bob","count":1},{"name":"tom","count":2}]},{"_id":"2017-08-02","name":[{"name":"sue","count":1},{"name":"bob","count":1}]}]defdb_dict(s):dicts=[]forlineins:res_dict={}forxinline.get('name'):names=x.get('name')values=x.get('count')res_dict[names]=valuesres=dict(dates=line.get('_id'),count=res_dict)dicts.append(res)returndicts函數(shù)執(zhí)行完的結(jié)果就得到想要的格式了[{'dates':'2017-08-03','count':{'tom':1}},{'dates':'2017-08-01','count':{'tom':2,'bob':1,'sue':1}},{'dates':'2017-08-02','count':{'bob':1,'sue':1}}]
mongodb按日期聚合,計(jì)數(shù)
紫衣仙女
2019-05-25 16:51:35