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程序员开发中常犯的10个错误
Jul 07 Python
Python中协程用法代码详解
Feb 10 Python
Tensorflow之Saver的用法详解
Apr 23 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
Python 语言实现六大查找算法
Jun 30 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php 中英文语言转换类
2011/09/07 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
js对象的构造和继承实现代码
2010/12/05 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
js原型链原理看图说明
2012/07/07 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
Python OS模块常用函数说明
2015/05/23 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
个人租房协议书
2014/04/09 职场文书
小学生综合素质评语
2014/04/23 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
解放思想演讲稿
2014/09/11 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
2016年元旦寄语
2015/08/17 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python