【Python】数据库之MongoDB

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB是为快速开发互联网Web应用而设计的数据库系统。MongoDB的设许目标是极简、灵活、作为Web应用栈的一部分。MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSON。

上一篇,我学习了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

image.png

安装驱动器,我们可以执行下面的命令: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>
>>>


下面我们在可视化工具种查看数据:

image.png


🎈 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)


然后我们再回去可视化工具中,查看已经插入的数据:

image.png


🎈 2.4 操作数据 | FIND_ONE/FIND

这些方法同我们在操作MongoDB使用的函数都差不多,有兴趣的可以自己手工执行下,这里我放我所操作实验的图片。


  • 获取一条数据

image.png


  • 遍历获取多条数据

image.png


  • 查询年龄等于13的学生用户

image.png


其他我就不在赘述,主要是同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














相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
26 15
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
131 68
|
12天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
81 15
|
9天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
1月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
2月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
2月前
|
关系型数据库 MySQL 数据处理
探索Python中的异步编程:从asyncio到异步数据库操作
在这个快节奏的技术世界里,效率和性能是关键。本文将带你深入Python的异步编程世界,从基础的asyncio库开始,逐步探索到异步数据库操作的高级应用。我们将一起揭开异步编程的神秘面纱,探索它如何帮助我们提升应用程序的性能和响应速度。
|
2月前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
23 1
|
2月前
|
存储 NoSQL MongoDB
mongodb的数据库表怎么创建
在此过程中,理解并掌握这些基本操作,是深入探索MongoDB魅力,乃至构建高效数据解决方案的关键所在。通过实践,您将更加深刻地体会到这种随需应变的数据管理模式带来的便利与效率提升。
42 0
|
关系型数据库 数据库 Python
Python连接DB2数据库
Python连接DB2数据库
135 0
下一篇
DataWorks