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 相关文章推荐
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
利用Python批量提取Win10锁屏壁纸实战教程
Mar 27 Python
python爬取微信公众号文章
Aug 31 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python调用动态链接库的基本过程详解
Jun 19 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 Python
如何在C++中调用Python
May 21 Python
python 中的@运算符使用
May 26 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框架Phpbean说明
2008/01/10 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python找出完数的方法
2018/11/12 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
Java程序员面试题
2016/09/27 面试题
个人求职简历的自我评价范文
2013/10/09 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
美丽的大脚观后感
2015/06/03 职场文书
财务人员入职担保书
2015/09/22 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python