python连接、操作mongodb数据库的方法实例详解


Posted in Python onSeptember 11, 2019

本文实例讲述了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://3water.com/article/169726.htm

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python字典,函数,全局变量代码解析
Dec 18 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
python求最大连续子数组的和
Jul 07 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
linux查找当前python解释器的位置方法
Feb 20 Python
python实现AES加密解密
Mar 28 Python
python getpass模块用法及实例详解
Oct 07 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
PyQt5的相对布局管理的实现
Aug 07 Python
面向对象学习之pygame坦克大战
Sep 11 #Python
Python整数与Numpy数据溢出问题解决
Sep 11 #Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 #Python
用Python画一个LinkinPark的logo代码实例
Sep 10 #Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 #Python
django drf框架自带的路由及最简化的视图
Sep 10 #Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 #Python
You might like
php自动获取目录下的模板的代码
2010/08/08 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
一个JS翻页效果
2007/07/23 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
原生js二级联动效果
2017/06/20 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
js通过循环多张图片实现动画效果
2019/12/19 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python中的下划线详解
2015/06/24 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
浅析python中的del用法
2020/09/02 Python
利用python 下载bilibili视频
2020/11/13 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
优秀老员工获奖感言
2014/02/15 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
教育见习报告范文
2014/11/03 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript