经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MongoDB » 查看文章
python连接、操作mongodb数据库的方法实例详解
来源:jb51  时间:2019/9/11 9:23:55  对本文有异议

本文实例讲述了python连接、操作mongodb数据库的方法。分享给大家供大家参考,具体如下:

数据库连接

  1. from pymongo import MongoClient
  2. import pandas as pd
  3. #建立MongoDB数据库连接
  4. client = MongoClient('162.23.167.36',27101)#或MongoClient("mongodb://162.23.167.36:27101/")
  5. #连接所需数据库,testDatabase为数据库名:
  6. db=client.testDatabase
  7. #连接所用集合,也就是我们通常所说的表,testTable为表名
  8. collection=db.testTable
  9.  

查询前几条

  1. dataSet=collection.find().limit(3)
  2. for item in dataSet:
  3. print(item)
  4.  

无条件查询全部

  1. dataSet=collection.find()
  2. for item in dataSet:
  3. print(item)
  4.  

按AND条件查询全部

  1. #查询cpu使用率大于等于10且内存使用率大于等于10的所有字段数据
  2. dataSet=collection.find({"cpu":{"$gte":10},"mem":{"$gte":10}})
  3. for item in dataSet:
  4. print(item)
  5.  

按AND条件查询指定字段数据

  1. #查询cpu使用率大于等于10且内存使用率大于等于10的数据,字段只显示did、ts、cpu、mem
  2. dataSet=collection.find({"cpu":{"$gte":10},"mem":{"$gte":10}}, {"did":1,"ts":1,"cpu":1,"mem":1})
  3. for item in dataSet:
  4. print(item)
  5. #查询cpu使用率等于0且内存使用率等于0的数据,字段只显示did、ts、cpu、mem
  6. dataSet=collection.find({"cpu":0,"mem":0}, {"did":1,"ts":1,"cpu":1,"mem":1})
  7. for item in dataSet:
  8. print(item)
  9.  

按OR条件查询指定字段数据

  1. #查询cpu使用率大于等于10或者内存使用率大于等于10的数据,字段只显示did、ts、cpu、mem
  2. dataSet=collection.find({"$or":[{"cpu":{"$gte":10}},{"mem":{"$gte":10}}]}, {"did":1,"ts":1,"cpu":1,"mem":1})
  3. for item in dataSet:
  4. print(item)
  5. #查询cpu使用率等于10或者内存使用率等于10的数据,字段只显示did、ts、cpu、mem
  6. dataSet=collection.find({"$or":[{"cpu":10},{"mem":10}]}, {"did":1,"ts":1,"cpu":1,"mem":1})
  7. for item in dataSet:
  8. print(item)
  9.  

mongodb的条件操作符

  1. # > - $gt
  2. # < - $lt
  3. # >= - $gte
  4. # <= - $lte
  5.  

排序

  1. #单列升序排序查询,,1 为升序,-1为降序
  2. dataSet=collection.find().sort([("cpu",1)])
  3. for item in dataSet:
  4. print(item)
  5. #多列排序查询
  6. dataSet=collection.find().sort([('did',pymongo.ASCENDING),('cpu',pymongo.DESCENDING)])
  7. for item in dataSet:
  8. print(item)
  9.  

查询结果写入excel

  1. #查询cpu使用率大于等于10且内存使用率大于等于10的数据,字段只显示did、ts、cpu、mem,查询结果写入excel
  2. import pandas as pd
  3. dataSet=collection.find({"cpu":{"$gte":10},"mem":{"$gte":10}}, {"did":1,"ts":1,"cpu":1,"mem":1})
  4. did,ts,cpu,mem=[],[],[],[]
  5. for item in dataSet:
  6. did.append(item["did"])
  7. ts.append(item["ts"])
  8. cpu.append(item["cpu"])
  9. mem.append(item["mem"])
  10. df=pd.DataFrame({"did":did,"ts":ts,"cpu":cpu,"mem":mem})
  11. df.to_excel("C:/Users/Desktop/设备cpu内存数据.xlsx")
  12.  

跳行查询

  1. #下面表示跳过两条数据后读取数据
  2. dataSet=collection.find().skip(2)
  3. for item in dataSet:
  4. print(item)
  5.  

去重

  1. #查询cpu使用率大于20、did不重复的数据
  2. dataSet=collection.distinct("did",{"cpu":{$gt:20}})
  3. for item in dataSet:
  4. print(item)
  5. #等同mysql的select distinct(did) from user where cpu>20
  6.  

参考:

操作mongodb更详细说明https://www.jb51.net/article/169726.htm

更多关于Python相关内容感兴趣的读者可查看jb51专题:《Python常见数据库操作技巧汇总》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号