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函数编程的一些特性
Apr 13 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
python3.6中@property装饰器的使用方法示例
Aug 17 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
基于PyQT实现区分左键双击和单击
May 19 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 Python
python爬虫中的url下载器用法详解
Nov 30 Python
python中redis包操作数据库的教程
Apr 19 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
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
2009/10/31 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
js与运算符和或运算符的妙用
2014/02/14 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
浅谈Python中带_的变量或函数命名
2017/12/04 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
python实现飞机大战项目
2020/03/11 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
Python爬取某平台短视频的方法
2021/02/08 Python
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
槐乡的孩子教学反思
2014/04/27 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
干部理论学习心得体会
2016/01/21 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
多属性、多分类MySQL模式设计
2021/04/05 MySQL
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python