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使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
一波神奇的Python语句、函数与方法的使用技巧总结
Dec 08 Python
全面了解Python环境配置及项目建立
Jun 30 Python
python使用opencv读取图片的实例
Aug 17 Python
Python闭包函数定义与用法分析
Jul 20 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
利用python numpy+matplotlib绘制股票k线图的方法
Jun 26 Python
django认证系统实现自定义权限管理的方法
Aug 28 Python
python datetime时间格式的相互转换问题
Jun 11 Python
python怎么对数字进行过滤
Jul 05 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
深度学习详解之初试机器学习
Apr 14 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
制作美丽的拉花
2021/03/03 冲泡冲煮
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
php-msf源码详解
2017/12/25 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
Python获取邮件地址的方法
2015/07/10 Python
使用Python设计一个代码统计工具
2018/04/04 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
世界上最大的二手相机店:KEN
2017/05/17 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
EJB timer的种类
2014/10/28 面试题
abstract class和interface有什么区别
2013/08/04 面试题
质检部职责
2013/12/28 职场文书
2014元旦晚会策划方案
2014/02/19 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
可口可乐广告词
2014/03/20 职场文书
文明工地标语
2014/06/16 职场文书