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破解斗地主残局详解
Jun 30 Python
python实现员工管理系统
Jan 11 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
Python:type、object、class与内置类型实例
Dec 25 Python
django model通过字典更新数据实例
Apr 01 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
举例讲解Python装饰器
Dec 24 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
python3 kubernetes api的使用示例
Jan 12 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中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
可输入的下拉框
2006/06/19 Javascript
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
js同源策略详解
2015/05/21 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
python实现的一个p2p文件传输实例
2014/06/04 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
python lambda的使用详解
2021/02/26 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
Python中如何定义一个函数
2016/09/06 面试题
企业法人授权委托书
2014/04/03 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
人力资源部工作计划
2019/05/14 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang