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中使用语句导入模块或包的机制研究
Mar 30 Python
python中list常用操作实例详解
Jun 03 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
Python常用模块函数代码汇总解析
Aug 31 Python
详解Python 函数参数的拆解
Sep 02 Python
python基础之类方法和静态方法
Oct 24 Python
Pygame Time时间控制的具体使用详解
Nov 17 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文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
原生js开发的日历插件
2017/02/04 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
python异步任务队列示例
2014/04/01 Python
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
linux 下实现python多版本安装实践
2014/11/18 Python
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
解决Mac下使用python的坑
2019/08/13 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
高三生物教学反思
2014/01/25 职场文书
班级旅游计划书
2014/05/03 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
室外天线与收音机天线杆接合方法
2022/04/05 无线电
Django中celery的使用项目实例
2022/07/07 Python