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里大整数相乘相关技巧指南
Sep 12 Python
详解Python读取配置文件模块ConfigParser
May 11 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
MAC中PyCharm设置python3解释器
Dec 15 Python
python实现redis三种cas事务操作
Dec 19 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Python小白不正确的使用类变量实例
May 29 Python
用Python进行websocket接口测试
Oct 16 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 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
解析csv数据导入mysql的方法
2013/07/01 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
原生js实现随机点名
2020/07/05 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
python select.select模块通信全过程解析
2017/09/20 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
应届生污水处理求职信
2013/11/06 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
我为自己代言广告词
2014/03/18 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
放假通知格式
2015/04/14 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
写给老师的保证书
2015/05/09 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
索尼ICF-36收音机评测
2022/04/30 无线电