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数组的处理代码
Jan 04 Python
Python获取脚本所在目录的正确方法
Apr 15 Python
Python中的日期时间处理详解
Nov 17 Python
Python pass详细介绍及实例代码
Nov 24 Python
python算法表示概念扫盲教程
Apr 13 Python
python数据结构之列表和元组的详解
Sep 23 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
如何使用Python 打印各种三角形
Jun 28 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
Python+Selenium使用Page Object实现页面自动化测试
Jul 14 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
django 模版关闭转义方式
May 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
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
使用js画图之饼图
2015/01/12 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
bootstrap Table的一些小操作
2017/11/01 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
django项目中新增app的2种实现方法
2020/04/01 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
python如何实现递归转非递归
2021/02/25 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
跟单业务员岗位职责
2014/03/08 职场文书
委托书的格式
2014/08/01 职场文书
爱心捐助活动总结
2015/05/09 职场文书
小学生手册家长意见
2015/06/03 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android