上一篇,我学习了Python
使用PyMySQL
来连接MySQL数据库
,学了如何下载、安装、使用依赖库,上一篇的🔗Python操作MySQL主要是连接关系型数据库,而在实际使用过程中,使用mondoDB的频率也比较高。应运而生,学习这一篇主要也是相当重要,因为使用这些数据库的频率比较高、适用场景比较广泛。
MongoDB是为快速开发互联网Web应用而设计的数据库系统。MongoDB的设许目标是极简、灵活、作为Web应用栈的一部分。MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSON。
🏮1 安装依赖库
Python下的使用pip安装PyMongo
上一篇介绍了如何在Mac环境下安装PyMySQL,这一次同样可以使用pip
这个工具安装mongoDB。
如何安装开发库驱动,可以参考官方提供的方式:开始使用MongoDB开始
具体的可以参考官方提供的文档:Python连接MongoDB的驱动PyMongo 3
# 安装驱动器
Aion.Liu $ pip install pymongo
Collecting 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:00
Installing collected packages: pymongo
Successfully installed pymongo-4.2.0
# 查看已经安装的依赖库以及版本
Aion.Liu $ pip list
Package Version
---------- -------
meson 0.63.0
pip 22.2.2
protobuf 4.21.4
# 可以看到我们已经成功安装了4.2.0版本的PyMongo驱动器
pymongo 4.2.0
PyMySQL 1.0.2
setuptools 63.2.0
xmltodict 0.13.0
当然,如果服务器或者本地实验环境的版本同安装的驱动器不在同一个兼容版本区间内,那么我们可以参考是否一致。官方提供的兼容版本:https://www.mongodb.com/docs/drivers/pymongo/#compatibility
🏮 2 如何操作MongoDB
python使用PyMongo操作MongoDB
🎈 2.1 连接数据库
首先我们将连接数据库的代码写入到一个c09.py
的文件,然后执行这个文件:
frompymongoimportMongoClientdefmongodb_init01(): # m1client=MongoClient(host='127.0.0.1', port=27017) print(client) defmongodb_init02(): # m2uri="mongodb://{}:{}".format('127.0.0.1', 27017) client=MongoClient(uri) print(client) if__name__=='__main__': mongodb_init01() mongodb_init02()
连接后,输出连接信息内容:
# 执行命令
Aion.Liu$pythonc09.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) <pymongo.results.InsertOneResultobjectat0x10d7379a0>>>>
下面我们在可视化工具种查看数据:
🎈 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 参考
[1] MongoDB官方提供的CURD操作:https://www.mongodb.com/docs/manual/crud/
[2] MongoDB兼容性:https://www.mongodb.com/docs/drivers/pymongo/#compatibility
[3] MongoDB官方文档说明:https://www.mongodb.com/docs/drivers/pymongo/
[4] MongoDB 使用语言操作说明页:https://www.mongodb.com/docs/drivers/?_ga=2.156034302.470735255.1660048923-277170845.1660048923
🎈 3 推荐一些可视化工具
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
🎈 4 学习总结
常言道:“学如逆海行舟,不进则退〞、活到老,学到老。所以,当我得知我想要学习另外一门语言的时候,我应该有机会学习,虽然我不拿着他赚钱,我想着这次学习机会对我以后的职业生涯有莫大的帮助,可以让我对开发语言这一领域有一个较为全面的认识,可以促使我尽快成长为一名合格的开发者。总而言之,通过本次自己定下的目标来学习,为促使我成为良好的代码工程师而努力。