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 解析XML文件
Apr 15 Python
简单分析Python中用fork()函数生成的子进程
May 04 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
Python之str操作方法(详解)
Jun 19 Python
速记Python布尔值
Nov 09 Python
对Python中gensim库word2vec的使用详解
May 08 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
深入浅析Python代码规范性检测
Jul 31 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
Python存储读取HDF5文件代码解析
Nov 25 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 之入门篇
2006/12/04 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
php的ddos攻击解决方法
2015/01/08 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
php抽象类用法实例分析
2015/07/07 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP goto语句用法实例
2019/08/06 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
python实现随机漫步方法和原理
2019/06/10 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
市场部管理制度
2014/02/02 职场文书
公司管理建议书范文
2014/03/12 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers