溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python連接、操作mongodb數據庫的方法實例詳解

發布時間:2020-09-21 23:41:09 來源:腳本之家 閱讀:366 作者:陽望 欄目:開發技術

本文實例講述了python連接、操作mongodb數據庫的方法。分享給大家供大家參考,具體如下:

數據庫連接

from pymongo import MongoClient
import pandas as pd
#建立MongoDB數據庫連接
client = MongoClient('162.23.167.36',27101)#或MongoClient("mongodb://162.23.167.36:27101/")
#連接所需數據庫,testDatabase為數據庫名:
db=client.testDatabase
#連接所用集合,也就是我們通常所說的表,testTable為表名
collection=db.testTable

查詢前幾條

dataSet=collection.find().limit(3)
for item in dataSet:
  print(item)

無條件查詢全部

dataSet=collection.find()
for item in dataSet:
  print(item)

按AND條件查詢全部

#查詢cpu使用率大于等于10且內存使用率大于等于10的所有字段數據
dataSet=collection.find({"cpu":{"$gte":10},"mem":{"$gte":10}})
for item in dataSet:
  print(item)

按AND條件查詢指定字段數據

#查詢cpu使用率大于等于10且內存使用率大于等于10的數據,字段只顯示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且內存使用率等于0的數據,字段只顯示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條件查詢指定字段數據

#查詢cpu使用率大于等于10或者內存使用率大于等于10的數據,字段只顯示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或者內存使用率等于10的數據,字段只顯示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)

查詢結果寫入excel

#查詢cpu使用率大于等于10且內存使用率大于等于10的數據,字段只顯示did、ts、cpu、mem,查詢結果寫入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/設備cpu內存數據.xlsx")

跳行查詢

#下面表示跳過兩條數據后讀取數據
dataSet=collection.find().skip(2)
for item in dataSet:
  print(item)

去重

#查詢cpu使用率大于20、did不重復的數據
dataSet=collection.distinct("did",{"cpu":{$gt:20}})
for item in dataSet:
  print(item)
#等同mysql的select distinct(did) from user where cpu>20

參考:

操作mongodb更詳細說明https://www.jb51.net/article/169726.htm

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python常見數據庫操作技巧匯總》、《Python數學運算技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女