打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python操作MongoDB基本使用_python读取mongodb数据

MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB 文档类似于JSON 对象。字段值可以包含其他文档,数组及文档数组
PyMongo库里面的MongoClient,默认是27017

一、术语

SQL术语 MongoDB术语                 说明
database             database                   数据库
table               collection                 数据库表/集合
row                 document                   数据记录行/文档
colunmn             field                     数据字段/域
index               index                     索引

二、PyMongo模块常用方法

  1. 1、安装
  2. 安装 python3 -m pip3 install pymongo
  3. 指定版本安装 python3 -m pip3 install pymongo==3.5.1
  4. 更新 python3 -m pip3 install --upgrade pymongo
  5. 2、链接MongoDB方法
  6. 直接传入MongoDB的连接字符串,它以mongodb开头
  7. client = MongoClient('mongodb://localhost:27017/')
  8. 连接MongoDB数据库
  9. client = pymongo.MongoClient(host='XXXXXXXXXXX',
  10. port=27017,
  11. username='root',
  12. pwd='XXXXXXXXXXXX')
  13. 3、指定数据库
  14. 指定数据库,连接数据库'my_test',真正插入文档后才会创建
  15. db = client.my_test
  16. 或者
  17. db = client['my_test']
  18. 4、指定集合
  19. 指定集合(例如:指定一个集合名称为students)
  20. collection = db.students
  21. 或者
  22. collection = db['students']
  23. 5、插入数据
  24. python 3 官方已经不推荐使用insert()方法了,有警告,返回的是在执行后返回_id集合。
  25. 官方推荐使用:
  26. insert_one() #插入一条数据,返回InsertOneResult对象,调用inserted_id属性,获取_id
  27. insert_many() #插入多条记录,返回InsertOneResult对象,调用inserted_ids属性,获取_id
  28. 6、查询
  29. 6.1 find_one()---查询单个结果
  30. # 查询name为Mike的数据,它的返回结果是字典类型
  31. result = collection.find_one({"name": "Mike"})
  32. print(result) # 结果中_id属性,MongoDB在插入过程中自动添加的
  33. 6.2 find()---查询多条数据,返回一个生成器对象
  34. results = collection.find({"age": 20})
  35. for i in results:
  36. print(i)
  37. 6.3 通过ObjectId来查询,此时需要使用bson库里面的objectid
  38. # from bson.objectid import ObjectId
  39. #
  40. # result_id = collection.find_one({'_id': ObjectId('61234301f091fa942b77db7f')})
  41. # print(result_id)
  42. 6.4比较符号归纳
  43. 符号含义示例:
  44. $lt小于{'age': {'$lt': 20}}
  45. $gt大于{'age': {'$gt': 20}}
  46. $lte小于等于{'age': {'$lte': 20}}
  47. $gte大于等于{'age': {'$gte': 20}}
  48. $ne不等于{'age': {'$ne': 20}}
  49. $in在范围内{'age': {'$in': [20, 23]}}
  50. $nin不在范围内{'age': {'$nin': [20, 23]}}
  51. 6.5正则匹配$regex
  52. 符号含义示例示例含义:
  53. $regex匹配正则{'name': {'$regex': '^M.*'}}name以M开头
  54. $exists属性是否存在{'name': {'$exists': True}}name属性存在
  55. $type类型判断{'age': {'$type': 'int'}}age的类型为int
  56. $mod数字模操作{'age': {'$mod': [5, 0]}}年龄模5余0
  57. $text文本查询{'$text': {'$search': 'Mike'}}text类型的属性中包含Mike字符串
  58. $where高级条件查询{'$where': 'obj.fans_count == obj.follows_count'}自身粉丝数等于关注数
  59. 7、计数
  60. # 不带有条件计数
  61. count = collection.estimated_document_count()
  62. print(count)
  63. # 带有查询条件计数
  64. count1 = collection.count_documents({'age': 20})
  65. print(f"age = 20的一共 {count1} 条数据")
  66. 8、排序
  67. 直接调用sort()方法,并在其中传入排序的字段及升降序标志即可
  68. results = collection.find().sort('name', pymongo.ASCENDING)
  69. print([result['name'] for result in results])
  70. pymongo.ASCENDING------升序,1
  71. pymongo.DESCENDING-----降序,-1
  72. 9、更新
  73. update_one() # 更新一条
  74. update_many instead() # 更新多条
  75. condition = {'name': 'Mike'}
  76. student = collection.find_one(condition)
  77. student['age'] = 22
  78. result = collection.update_one(condition, {'$set': student})
  79. print(type(result))
  80. print(f"匹配的数据条数:{result.matched_count}, 影响的数据条数是:{result.modified_count}")
  81. # 在这里调用了update_one方法,第二个参数不能再直接传入修改后的字典,而是需要使用{'$set': student}这样的形式,
  82. # 其返回结果是UpdateResult类型,然后调用matched_count和modified_count属性分别可以获得匹配的数据条数和影响的数据条数。
  83. 10、删除
  84. delete_one()即删除第一条符合条件的数据,
  85. delete_many()即删除所有符合条件的数据。
  86. 它们的返回结果都是DeleteResult类型,可以调用deleted_count属性获取删除的数据条数
  87. result = collection.delete_one({'name': 'Mike'})
  88. print(result)
  89. print(result.deleted_count)
  90. result = collection.delete_many({'age': {'$lt': 25}})
  91. print(result.deleted_count)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python3使用PyMongo
python必掌握库:pymongo库的心你懂吗?
Python操作MongoDB看这一篇就够了
第78天: Python 操作 MongoDB 数据库介绍
最全总结 | 聊聊 Python 数据处理全家桶(MongoDB 篇)
Python 操作 MongoDB 基础讲解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服