婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mongodb中按天進(jìn)行聚合查詢的實(shí)例教程

mongodb中按天進(jìn)行聚合查詢的實(shí)例教程

熱門標(biāo)簽:呼和浩特電銷外呼系統(tǒng)加盟 蘋果汽車租賃店地圖標(biāo)注 電銷機(jī)器人是什么軟件 怎么投訴地圖標(biāo)注 濟(jì)南電銷機(jī)器人加盟公司 云南外呼系統(tǒng) 老虎洗衣店地圖標(biāo)注 杭州人工電銷機(jī)器人價(jià)格 廣州長安公司怎樣申請400電話

前言

最近在寫項(xiàng)目的時(shí)候遇到一個(gè)問題,使用mongodb記錄了用例的執(zhí)行結(jié)果,但是在時(shí)間的記錄上使用的是date格式,現(xiàn)在有一個(gè)需求,以天為單位,統(tǒng)計(jì)一下每天成功的用例和失敗的用例,說到統(tǒng)計(jì),肯定是要用到聚合查詢,但是如果以date格式的時(shí)間為group依據(jù),那么等同于沒有分組,因?yàn)樵谟涗浻美臅r(shí)間幾乎不可能同時(shí),今天查閱了一下相關(guān)文檔,可以使用mongodb的$dateToString命令來完成這個(gè)需求

問題來源

假如我們以如下的數(shù)據(jù)

/* 1 */
{
 "_id" : ObjectId("5d24c09651a456efbc231669"),
 "time" : ISODate("2019-07-08T10:12:35.125Z"),
 "result" : "Pass"
}

/* 2 */
{
 "_id" : ObjectId("5d24c09e51a456efbc23166a"),
 "time" : ISODate("2019-07-08T10:12:36.125Z"),
 "result" : "Pass"
}

...
...

/* 10 */
{
 "_id" : ObjectId("5d24c0d851a456efbc231672"),
 "time" : ISODate("2019-07-06T10:10:52.125Z"),
 "result" : "Pass"
}

/* 11 */
{
 "_id" : ObjectId("5d24c0e751a456efbc231673"),
 "time" : ISODate("2019-07-06T10:10:52.125Z"),
 "result" : "Fail"
}

我的預(yù)期結(jié)果是

{'_id': '2019-07-06', 'Pass': 1}
{'_id': '2019-07-06', 'Fail': 2}
{'_id': '2019-07-07', 'Pass': 2}
{'_id': '2019-07-07', 'Fail': 1}
{'_id': '2019-07-08', 'Pass': 2}
{'_id': '2019-07-08', 'Fail': 3}

如果按照以前的聚合方式,通過$time來分組,由于每個(gè)時(shí)間都不相同,所以這樣的聚合就相當(dāng)于沒有聚合

#coding:utf-8

from pymongo import MongoClient

client = MongoClient(host=['%s:%s'%("127.0.0.1",27017)])
G_mongo = client['test']

pipeline = [
  {'$group': {'_id': '$time', 'count': {'$sum': 1}}},
 ]
for i in G_mongo['test'].aggregate(pipeline):
 print(i)

得到的結(jié)果

{'_id': datetime.datetime(2019, 7, 6, 10, 10, 32, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 7, 10, 10, 32, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 8, 10, 11, 22, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 6, 10, 10, 52, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 8, 10, 11, 32, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 8, 10, 12, 32, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 7, 10, 11, 22, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 8, 10, 12, 36, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 8, 10, 12, 35, 125000), 'count': 1}
{'_id': datetime.datetime(2019, 7, 7, 10, 10, 22, 125000), 'count': 1}

可以看到,由于$time上的時(shí)間,誰和誰都不一樣,所以如果以$time為分組對象的話每個(gè)統(tǒng)計(jì)都是1。

問題的解決

在分組的時(shí)候有一個(gè)$dateToString指令,可以將日期格式的值轉(zhuǎn)化為字符串,比如這里因?yàn)樾枨笫且蕴鞛閱挝唬晕覍⑵滢D(zhuǎn)為
%Y-%m-%d的字符串格式,具體的$grouop如下

{'$group': {'_id': {"$dateToString":{'format':'%Y-%m-%d','date':'$time'}}, 'count': {'$sum': 1}}}

$dateToString的說明文檔可以訪問https://docs.mongodb.com/manual/reference/operator/aggregation/dateToString/ 查看,簡單介紹一個(gè)

{ $dateToString: {
  date: dateExpression>,
  format: formatString>,
  timezone: tzExpression>,
  onNull: expression>
} }

它需要四個(gè)參數(shù),只有date參數(shù)是必須的,指定數(shù)據(jù)來源,format是轉(zhuǎn)化的格式,timezone為時(shí)區(qū),onNull是如果日期值不存在時(shí)返回的值。

#coding:utf-8

from pymongo import MongoClient

client = MongoClient(host=['%s:%s'%("127.0.0.1",27017)])
G_mongo = client['test']


pipeline = [
    # {'$group': {'_id': '$time', 'count': {'$sum': 1}}},
    {'$group': {'_id': {"$dateToString":{'format':'%Y-%m-%d','date':'$time'}}, 'count': {'$sum': 1}}}
  ]
for i in G_mongo['test'].aggregate(pipeline):
  print(i)

上面代碼執(zhí)行的結(jié)果如下

{'_id': '2019-07-06', 'count': 2}
{'_id': '2019-07-07', 'count': 3}
{'_id': '2019-07-08', 'count': 5}

這個(gè)看起來還不錯(cuò),但是離我的目標(biāo)還差一點(diǎn),因?yàn)樗€沒有按照用例執(zhí)行結(jié)果進(jìn)行分組,再以天進(jìn)行倒序排列

#coding:utf-8

from pymongo import MongoClient

client = MongoClient(host=['%s:%s'%("127.0.0.1",27017)])
G_mongo = client['test']


pipeline = [
    # {'$group': {'_id': '$time', 'count': {'$sum': 1}}},
    {'$group': {'_id': {'date':{"$dateToString":{'format':'%Y-%m-%d','date':'$time'}},'result':'$result'}, 'count': {'$sum': 1}}},
    {'$sort':{"_id.date":-1}}
  ]
for i in G_mongo['test'].aggregate(pipeline):
  print(i)

得到的結(jié)果如下

{'_id': {'date': '2019-07-08', 'result': 'Fail'}, 'count': 3}
{'_id': {'date': '2019-07-08', 'result': 'Pass'}, 'count': 2}
{'_id': {'date': '2019-07-07', 'result': 'Pass'}, 'count': 2}
{'_id': {'date': '2019-07-07', 'result': 'Fail'}, 'count': 1}
{'_id': {'date': '2019-07-06', 'result': 'Fail'}, 'count': 1}
{'_id': {'date': '2019-07-06', 'result': 'Pass'}, 'count': 2}

查看文檔,除了使用$dateToString指令還可以使用$dayOfMonth指令

pipeline = [
    {'$group': {'_id': {'date':{"$dayOfMonth":{'date':'$time'}},'result':'$result'}, 'count': {'$sum': 1}}},
    {'$sort':{"_id.date":-1}},
  ]

但是這個(gè)指令只能適用于單一月份,如果兩個(gè)月就會有交集,如7月6號和6月6號的會聚合到一起
上面得到的結(jié)果是

{'_id': {'date': 8, 'result': 'Fail'}, 'count': 3}
{'_id': {'date': 8, 'result': 'Pass'}, 'count': 2}
{'_id': {'date': 7, 'result': 'Pass'}, 'count': 2}
{'_id': {'date': 7, 'result': 'Fail'}, 'count': 1}
{'_id': {'date': 6, 'result': 'Pass'}, 'count': 2}
{'_id': {'date': 6, 'result': 'Fail'}, 'count': 1}

所以需要根據(jù)需求靈活的使用各種指令。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • JAVA mongodb 聚合幾種查詢方式詳解
  • MongoDB教程之聚合(count、distinct和group)
  • Mongodb聚合函數(shù)count、distinct、group如何實(shí)現(xiàn)數(shù)據(jù)聚合操作
  • MongoDB聚合功能淺析
  • MongoDB入門教程之聚合和游標(biāo)操作介紹
  • MongoDB聚合分組取第一條記錄的案例與實(shí)現(xiàn)方法
  • mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理
  • mongoDB中聚合函數(shù)java處理示例詳解

標(biāo)簽:興安盟 廈門 玉林 雞西 泰安 遼陽 自貢 無錫

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mongodb中按天進(jìn)行聚合查詢的實(shí)例教程》,本文關(guān)鍵詞  mongodb,中按天,進(jìn)行,聚合,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mongodb中按天進(jìn)行聚合查詢的實(shí)例教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于mongodb中按天進(jìn)行聚合查詢的實(shí)例教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品久久久99| 午夜欧美视频在线观看| k8久久久一区二区三区| 99re视频精品| 亚洲综合免费观看高清完整版在线 | 色噜噜狠狠色综合欧洲selulu| 一本在线高清不卡dvd| 欧美一区二区大片| 国产精品理论片| 国产综合色在线视频区| 91网上在线视频| 国产精品每日更新| 精品一区二区日韩| 欧美男生操女生| 亚洲一区二区欧美| 91精品91久久久中77777| 一区二区三区日韩欧美精品| 欧美亚洲一区二区在线| 国产精品视频第一区| 国产精品1区2区3区| 久久综合成人精品亚洲另类欧美| 偷拍一区二区三区| 欧美午夜不卡视频| 亚洲国产精品传媒在线观看| 精品在线视频一区| 337p日本欧洲亚洲大胆精品| 无吗不卡中文字幕| 日韩理论片中文av| 成人一区二区三区在线观看| 日韩欧美一区二区在线视频| 欧美日韩成人综合在线一区二区| 91在线精品秘密一区二区| 日韩免费高清电影| 国产精品久久久久影院| 色偷偷一区二区三区| 亚洲观看高清完整版在线观看| 日本高清视频一区二区| 日韩精品电影在线| 国产精品久久久久影视| 久久精品欧美一区二区三区不卡| 国产精品你懂的在线欣赏| 国产激情一区二区三区四区| 日韩色视频在线观看| 国产一区二区三区免费看| 91老司机福利 在线| 亚洲欧洲综合另类在线| 911精品国产一区二区在线| 国产盗摄精品一区二区三区在线| 亚洲女同ⅹxx女同tv| 午夜精品爽啪视频| 亚洲男同性恋视频| 国产麻豆精品theporn| 1000精品久久久久久久久| 91麻豆精品国产91久久久久久久久 | 亚洲国产成人av| 久久一二三国产| 在线成人午夜影院| 成人福利在线看| 九九精品视频在线看| 性欧美疯狂xxxxbbbb| ㊣最新国产の精品bt伙计久久| 日韩亚洲欧美一区| 在线观看日产精品| 99久久综合国产精品| 久久av老司机精品网站导航| 婷婷丁香激情综合| 久久国产精品一区二区| 蜜臀va亚洲va欧美va天堂| 午夜激情久久久| 三级欧美在线一区| 日本中文一区二区三区| 亚洲高清不卡在线| 一区二区三区精品在线| 青青草精品视频| 国产自产视频一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 视频一区免费在线观看| 欧美电影免费观看高清完整版在| 91精品一区二区三区久久久久久 | 丁香桃色午夜亚洲一区二区三区| 日本强好片久久久久久aaa| 亚洲国产欧美日韩另类综合 | 国产精品久久久久四虎| 亚洲综合一区在线| 另类中文字幕网| 国产成人精品aa毛片| 成人黄色av电影| 欧美丰满嫩嫩电影| 国产午夜精品美女毛片视频| 中文字幕av一区二区三区| 日韩码欧中文字| 午夜精品久久久久久久久| 久久av老司机精品网站导航| 91在线精品一区二区| 精品人在线二区三区| 中文字幕一区av| 日韩av不卡在线观看| 国产成人在线观看免费网站| 国产成人免费视| 日韩一区二区在线看片| 亚洲色图欧美在线| 日韩中文字幕亚洲一区二区va在线| 激情综合网av| 成人av资源在线观看| 在线区一区二视频| heyzo一本久久综合| 欧美怡红院视频| 欧美国产精品一区| 日韩avvvv在线播放| 精品一区二区三区免费播放| 欧美日韩三级在线| 亚洲va天堂va国产va久| 国产精品一品二品| 欧美中文字幕一区二区三区| 久久久久久一二三区| 韩国精品一区二区| 欧美视频中文字幕| 亚洲天堂av老司机| 成人av在线播放网址| 国产成人精品免费视频网站| 精品久久久久久久久久久院品网 | 久久新电视剧免费观看| 亚洲自拍都市欧美小说| 播五月开心婷婷综合| 久久新电视剧免费观看| 美女在线一区二区| 日韩精品一区二区三区三区免费| 青椒成人免费视频| 91精品国产综合久久久蜜臀图片| 一区二区三区免费在线观看| 91丨porny丨蝌蚪视频| 91麻豆国产香蕉久久精品| 国产三级欧美三级| 国产麻豆成人传媒免费观看| 精品日韩av一区二区| 国产真实乱偷精品视频免| 精品视频在线看| 精品一区二区三区免费| 精品国产乱码久久| 国内精品写真在线观看| 久久久电影一区二区三区| 东方欧美亚洲色图在线| 亚洲大尺度视频在线观看| 欧美精品色综合| 国内精品久久久久影院色| 成人av中文字幕| 日本伊人色综合网| 国产日产欧美一区| 欧美日韩在线观看一区二区 | 2021中文字幕一区亚洲| 久久99国产精品久久99| 久久色在线视频| 91在线视频免费91| 日韩av电影一区| 日本一区二区三区电影| 欧美日韩成人高清| 欧美日韩国产另类不卡| 久久9热精品视频| 亚洲男同1069视频| 91.com在线观看| 国产ts人妖一区二区| 一区二区三区在线观看欧美| 视频一区二区欧美| 久久综合给合久久狠狠狠97色69| 久久精品国产免费| 国产亚洲欧美激情| 91久久线看在观草草青青| 久久成人免费电影| 日本欧美在线观看| 亚洲一区免费在线观看| 亚洲一区二区三区四区的| 国产精品情趣视频| 国产丝袜欧美中文另类| 亚洲不卡一区二区三区| 久久久久久综合| 久久精品一区二区三区四区| 欧美精品在欧美一区二区少妇| 99精品国产热久久91蜜凸| 国产精品99久久久| 成人av电影在线| 99久久久久久| 在线看日韩精品电影| 97se亚洲国产综合自在线观| 欧美亚洲国产bt| 欧洲视频一区二区| 欧美日韩专区在线| 色欧美乱欧美15图片| 欧美三级日韩在线| 欧美高清精品3d| 日韩欧美在线一区二区三区| 欧美亚洲国产怡红院影院| 精品美女在线播放| 欧美国产精品久久| 亚洲精品你懂的| 理论片日本一区| 日韩精品一区在线| 国产精品女主播av| 午夜久久电影网| 国产一区日韩二区欧美三区| 国产91精品露脸国语对白|