活动地址:CSDN21天学习挑战赛
上一篇,技术我学习了
Python
使用PyMySQL
来连接MySQL数据库
,学习学了如何下载、操作安装、技术使用依赖库,学习上一篇的操作🔗Python操作MySQL主要是连接关系型数据库,而在实际使用过程中,技术使用mondoDB的学习频率也比较高。应运而生,操作学习这一篇主要也是技术相当重要,因为使用这些数据库的学习频率比较高、适用场景比较广泛。操作MongoDB是技术为快速开发互联网Web应用而设计的数据库系统。MongoDB的学习设许目标是极简、灵活、操作作为Web应用栈的一部分。MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSON。
🏮1 使用pip安装PyMongo
上一篇介绍了如何在Mac环境下安装PyMySQL,这一次同样可以使用pip
这个工具安装mongoDB。
如何安装开发库驱动,可以参考官方提供的方式:开始使用MongoDB开始
具体的可以参考官方提供的文档:Python连接MongoDB的驱动PyMongo
# 安装驱动器Aion.Liu $ pip install pymongoCollecting pymongo Downloading pymongo-4.2.0-cp310-cp310-macosx_10_9_universal2.whl (373 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 373.4/373.4 kB 20.1 kB/s eta 0:00:00Installing collected packages: pymongoSuccessfully installed pymongo-4.2.0# 查看已经安装的依赖库以及版本Aion.Liu $ pip listPackage Version---------- -------meson 0.63.0pip 22.2.2protobuf 4.21.4# 可以看到我们已经成功安装了4.2.0版本的PyMongo驱动器pymongo 4.2.0PyMySQL 1.0.2setuptools 63.2.0xmltodict 0.13.0
当然,如果服务器或者本地实验环境的版本同安装的驱动器不在同一个兼容版本区间内,那么我们可以参考是否一致。官方提供的兼容版本:https://www.mongodb.com/docs/drivers/pymongo/#compatibility
🏮 2 python使用PyMongo操作MongoDB
🎈 2.1 连接数据库
首先我们将连接数据库的代码写入到一个c09.py
的文件,然后执行这个文件:
from pymongo import MongoClientdef mongodb_init01(): # m1 client = MongoClient(host='127.0.0.1', port=27017) print(client)def mongodb_init02(): # m2 uri = "mongodb://{ }:{ }".format('127.0.0.1', 27017) client = MongoClient(uri) print(client)if __name__ == '__main__': mongodb_init01() mongodb_init02()
连接后,输出连接信息内容:
# 执行命令Aion.Liu $ python c09.pyMongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)
🎈 2.2 操作数据|INSERT_ONE
我们在2.1的基础上,创建一个python_study
数据库
>>>python_study = client.python_study
在数据库中,创建一个集合users
,并插入一条数据。
# 创建集合并插入一条数据>>>user = python_study.users.insert_one({ "name" : "Aion.Liu", "age" : 18, "sex" : '1'})>>>print(user)>>>
下面我们在可视化工具种查看数据:
🎈 2.3 操作数据|INSERT_MANY
如果我们想一次性插入一个集合,要如何操作呢,也很简单:
>>>user_list = [... { "name": "XiaoMing", "age": 15, "sex": "0"},... { "name": "Lucy", "age": 18, "sex": "1"},... { "name": "HanMeimei", "age": 16, "sex": "1"},... { "name": "Lily", "age": 19, "sex": "1"},... { "name": "Jim", "age": 15, "sex": "0"},... { "name": "Kate","age": 14, "sex": "9"},... { "name": "Tom", "age": 13, "sex": "1"},... { "name": "Ann","age": 12, "sex": "2"},... { "name": "LiLei", "age": 17, "sex": "0"},... { "name": "LinTao", "age": 18, "sex": "1"}... ]>>>>>>insert_users = python_study.insert_many(user_list)
然后我们再回去可视化工具中,查看已经插入的数据:
🎈 2.4 操作数据|FIND_ONE/FIND
这些方法同我们在操作MongoDB使用的函数都差不多,有兴趣的可以自己手工执行下,这里我放我所操作实验的图片。
获取一条数据
遍历获取多条数据
查询年龄等于13的学生用户
其他我就不在赘述,主要是同MongoDB的操作相差不是很大。官方提供的CRUD的操作:https://www.mongodb.com/docs/manual/crud/
🎈 2.5 MongoDB的可视化工具
关于可视化工具的选择,大家可以搜索下,任意选择就好,这里推荐下老师博客使用的可视化工具NoSQL Manager for MongoDB 由于我需要连接其他的数据库,所以这里选择了DBeaver。其他的一些可视化工具就有很多了,如下所示:
- MongoDB Compass Community(社区版)
- NoSQLBooster
- Cluster Control
- Mongo Management Studio
- Nosqlclient
- Robo 3T(Robomongo、Studio 3T)
- Navicat for MongoDB
- Aqua Data Studio Mongo
- phpMoAdmin
- Mongotron
- Mongolime
- Mongo-express