上一篇,我学习了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
安装驱动器,我们可以执行下面的命令:pip install pymongo
# 安装驱动器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
查看已经安装的依赖库以及版本,可以执行命令:pip list
# 可以看到我们已经成功安装了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 python使用PyMongo操作MongoDB
🎈 2.1 连接数据库
首先我们将连接数据库的代码写入到一个c09.py的文件,然后执行这个文件:
from pymongo import MongoClient def 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.py MongoClient(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.InsertOneResult object at 0x10d7379a0> >>>
下面我们在可视化工具种查看数据:
🎈 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