【Python】数据库之MongoDB

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
简介: 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
相关文章
|
2天前
|
SQL NoSQL 数据库
在Python中使用sqlalchemy来操作数据库的几个小总结
在探索使用 FastAPI, SQLAlchemy, Pydantic,Redis, JWT 构建的项目的时候,其中数据库访问采用SQLAlchemy,并采用异步方式。数据库操作和控制器操作,采用基类继承的方式减少重复代码,提高代码复用性。在这个过程中设计接口和测试的时候,对一些问题进行跟踪解决,并记录供参考。
|
10天前
|
SQL 关系型数据库 数据库
【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】
【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】
42 10
|
5天前
|
JSON NoSQL Ubuntu
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
15 1
|
5天前
|
关系型数据库 数据库 数据安全/隐私保护
"告别繁琐!Python大神揭秘:如何一键定制阿里云RDS备份策略,让数据安全与效率并肩飞,轻松玩转云端数据库!"
【8月更文挑战第14天】在云计算时代,数据库安全至关重要。阿里云RDS提供自动备份,但标准策略难以适应所有场景。传统手动备份灵活性差、管理成本高且恢复效率低。本文对比手动备份,介绍使用Python自定义阿里云RDS备份策略的方法,实现动态调整备份频率、集中管理和智能决策,提升备份效率与数据安全性。示例代码演示如何创建自动备份任务。通过自动化与智能化备份管理,支持企业数字化转型。
16 2
|
10天前
|
SQL 关系型数据库 MySQL
Python系列:教你使用PyMySQL操作MySQL数据库
Python系列:教你使用PyMySQL操作MySQL数据库
21 8
|
12天前
|
数据采集 数据可视化 关系型数据库
【优秀python web设计】基于Python flask的猫眼电影可视化系统,可视化用echart,前端Layui,数据库用MySQL,包括爬虫
本文介绍了一个基于Python Flask框架、MySQL数据库和Layui前端框架的猫眼电影数据采集分析与可视化系统,该系统通过爬虫技术采集电影数据,利用数据分析库进行处理,并使用Echart进行数据的可视化展示,以提供全面、准确的电影市场分析结果。
|
11天前
|
数据库连接 数据库 数据安全/隐私保护
【Python】python学生体能考核成绩管理系统(数据库) (源码+报告)【独一无二】
【Python】python学生体能考核成绩管理系统(数据库) (源码+报告)【独一无二】
|
12天前
|
NoSQL 大数据 MongoDB
云中对决:Amazon DocumentDB 与 MongoDB的终极较量,谁将主宰云端数据库的未来?
【8月更文挑战第8天】在云计算与大数据时代,文档数据库因灵活高效备受开发者青睐。本文作为指南,全面对比Amazon DocumentDB与MongoDB。DocumentDB兼容MongoDB,便于迁移;在AWS环境下,它提供卓越的性能与自动伸缩能力。MongoDB则侧重于自定义部署与成本控制。DocumentDB作为托管服务简化管理但成本较高,而MongoDB需自行处理安全性与备份。根据需求与预算,开发者可作出最佳选择。
28 3
|
10天前
|
SQL 关系型数据库 MySQL
【python】python学生信息管理系统 ——数据库版(源码)【独一无二】
【python】python学生信息管理系统 ——数据库版(源码)【独一无二】
|
12天前
|
数据采集 数据可视化 前端开发
基于python flask的旅游数据大屏实现,有爬虫有数据库
本文介绍了一个基于Python Flask框架开发的旅游数据大屏系统,该系统集成了爬虫技术、数据库存储和ECharts数据可视化,提供了一个全面、实时更新的旅游信息展示平台,旨在提升旅游行业用户体验和决策效率。

热门文章

最新文章