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爬虫之爬虫编写全记录
Nov 06 Python
Python全局变量操作详解
Apr 14 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
django js实现部分页面刷新的示例代码
May 28 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
Python编程深度学习计算库之numpy
Dec 28 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
python判断文件是否存在,不存在就创建一个的实例
Feb 18 Python
Python如何实现定时器功能
May 28 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利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
Python内置函数之filter map reduce介绍
2014/11/30 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python生成密码库功能示例
2017/05/23 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
Django组件content-type使用方法详解
2019/07/19 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
书法培训心得体会
2014/01/05 职场文书
消防安全宣传口号
2014/06/10 职场文书
个人安全生产责任书
2014/07/28 职场文书
质量保证书
2015/01/17 职场文书
优质护理服务心得体会
2016/01/22 职场文书
中学教代会开幕词
2016/03/04 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis