本文實(shí)例講述了python連接、操作mongodb數(shù)據(jù)庫(kù)的方法。分享給大家供大家參考,具體如下:
數(shù)據(jù)庫(kù)連接
from pymongo import MongoClient import pandas as pd #建立MongoDB數(shù)據(jù)庫(kù)連接 client = MongoClient('162.23.167.36',27101)#或MongoClient("mongodb://162.23.167.36:27101/") #連接所需數(shù)據(jù)庫(kù),testDatabase為數(shù)據(jù)庫(kù)名: db=client.testDatabase #連接所用集合,也就是我們通常所說(shuō)的表,testTable為表名 collection=db.testTable
查詢前幾條
dataSet=collection.find().limit(3) for item in dataSet: print(item)
無(wú)條件查詢?nèi)?
dataSet=collection.find() for item in dataSet: print(item)
按AND條件查詢?nèi)?
#查詢cpu使用率大于等于10且內(nèi)存使用率大于等于10的所有字段數(shù)據(jù) dataSet=collection.find({"cpu":{"$gte":10},"mem":{"$gte":10}}) for item in dataSet: print(item)
按AND條件查詢指定字段數(shù)據(jù)
#查詢cpu使用率大于等于10且內(nèi)存使用率大于等于10的數(shù)據(jù),字段只顯示did、ts、cpu、mem dataSet=collection.find({"cpu":{"$gte":10},"mem":{"$gte":10}}, {"did":1,"ts":1,"cpu":1,"mem":1}) for item in dataSet: print(item) #查詢cpu使用率等于0且內(nèi)存使用率等于0的數(shù)據(jù),字段只顯示did、ts、cpu、mem dataSet=collection.find({"cpu":0,"mem":0}, {"did":1,"ts":1,"cpu":1,"mem":1}) for item in dataSet: print(item)
按OR條件查詢指定字段數(shù)據(jù)
#查詢cpu使用率大于等于10或者內(nèi)存使用率大于等于10的數(shù)據(jù),字段只顯示did、ts、cpu、mem dataSet=collection.find({"$or":[{"cpu":{"$gte":10}},{"mem":{"$gte":10}}]}, {"did":1,"ts":1,"cpu":1,"mem":1}) for item in dataSet: print(item) #查詢cpu使用率等于10或者內(nèi)存使用率等于10的數(shù)據(jù),字段只顯示did、ts、cpu、mem dataSet=collection.find({"$or":[{"cpu":10},{"mem":10}]}, {"did":1,"ts":1,"cpu":1,"mem":1}) for item in dataSet: print(item)
mongodb的條件操作符
# > - $gt # < - $lt # >= - $gte # <= - $lte
排序
#單列升序排序查詢,,1 為升序,-1為降序 dataSet=collection.find().sort([("cpu",1)]) for item in dataSet: print(item) #多列排序查詢 dataSet=collection.find().sort([('did',pymongo.ASCENDING),('cpu',pymongo.DESCENDING)]) for item in dataSet: print(item)
查詢結(jié)果寫(xiě)入excel
#查詢cpu使用率大于等于10且內(nèi)存使用率大于等于10的數(shù)據(jù),字段只顯示did、ts、cpu、mem,查詢結(jié)果寫(xiě)入excel import pandas as pd dataSet=collection.find({"cpu":{"$gte":10},"mem":{"$gte":10}}, {"did":1,"ts":1,"cpu":1,"mem":1}) did,ts,cpu,mem=[],[],[],[] for item in dataSet: did.append(item["did"]) ts.append(item["ts"]) cpu.append(item["cpu"]) mem.append(item["mem"]) df=pd.DataFrame({"did":did,"ts":ts,"cpu":cpu,"mem":mem}) df.to_excel("C:/Users/Desktop/設(shè)備cpu內(nèi)存數(shù)據(jù).xlsx")
跳行查詢
#下面表示跳過(guò)兩條數(shù)據(jù)后讀取數(shù)據(jù) dataSet=collection.find().skip(2) for item in dataSet: print(item)
去重
#查詢cpu使用率大于20、did不重復(fù)的數(shù)據(jù) dataSet=collection.distinct("did",{"cpu":{$gt:20}}) for item in dataSet: print(item) #等同mysql的select distinct(did) from user where cpu>20
參考:
操作mongodb更詳細(xì)說(shuō)明https://www.jb51.net/article/169726.htm
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
