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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
python读写ini文件示例(python读写文件)
Mar 25 Python
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
python使用psutil模块获取系统状态
Aug 27 Python
Python 基础教程之包和类的用法
Feb 23 Python
Python操作MySQL模拟银行转账
Mar 12 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
python pandas库的安装和创建
Jan 10 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
python序列化与数据持久化实例详解
Dec 20 Python
Python基于smtplib模块发送邮件代码实例
May 29 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP也可以?成Shell Script
2006/10/09 PHP
使用PHP批量生成随机用户名
2008/07/10 PHP
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
php中Smarty模板初体验
2011/08/08 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
初识javascript 文档碎片
2010/07/13 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
js 通用订单代码
2013/12/23 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
简析Python的闭包和装饰器
2016/02/26 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python文本数据相似度的度量
2018/03/12 Python
Python批量发送post请求的实现代码
2018/05/05 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
Python requests上传文件实现步骤
2020/09/15 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
医学检验专业自荐信
2014/09/18 职场文书
岗位职责范本大全
2015/02/26 职场文书
同学毕业留言寄语
2015/02/27 职场文书
mysql数据库隔离级别详解
2022/06/16 MySQL