使用异步 Python 操作 MongoDB

MongoDB with Async Python

 课程总结

MongoDB是最令人兴奋的数据技术之一。您可以构建性能极高的应用程序,享受无模式生活方式的乐趣。Python 是 MongoDB 的完美对应物。在本课程中,我们将介绍用于处理 MongoDB 的最新 Python 框架和技术:Beanie ODM(对象文档映射器)、Pydantic、FastAPI、Locust 负载测试以及 Python 的 async 和 await 功能。

 学生们在说什么

值得每一分钱!出色的内容交付和课程的整体理念非常出色,因为它带来了现代全栈开发的经验,最后,您将获得功能齐全,更重要的是具有所有花里胡哨的可扩展平台
— Dmitry Filippov,PyCharm 团队成员

源代码和课程 GitHub 仓库

 github.com/talkpython/mongodb-for-async-python-course

这门课程是关于什么的,它有什么不同?

本课程将教您如何使用 MongoDB 和文档数据库来构建更简单、更快速的数据驱动应用程序

我们首先解释 NoSQL 和文档数据库的起源和主要概念。然后,您将学习如何从其本机 shell 以及许多 CLI 和 GUI 管理工具使用 MongoDB。

许多MongoDB课程就此止步。本课程旨在对 MongoDB 进行实用的端到端介绍。我们通过涵盖现实世界的主题来超越表面。

您将了解如何使用 Beanie(一种流行的 MongoDB ODM – 想想 NoSQL 的 ORM)将类映射到 MongoDB。Beanie 基于最先进的 Python 技术,例如 Pydantic 和 Python 的 async 和 await。

在这个基于代码、动手实践、演示驱动的课程中,我们将使用 Beanie 构建一些简单的示例应用程序。然后,我们将继续在 MongoDB 中使用 100,000 条记录对真实 PyPI 数据进行建模。一旦我们有了 Python 代码处理 PyPI 数据,我们将围绕数据构建一个完整的 FastAPI API,展示 Beanie 和异步 MongoDB 在 FastAPI 中的顺利集成

在我们掌握了从 Python 使用 MongoDB 的操作之后,我们将把注意力转向性能。我们采用一个包含数百万个数据点的大型数据库,使其运行速度比使用 MongoDB 开箱即用的速度快数百倍。我们使用自定义 Python 代码和 Locust 负载测试框架来测试性能更改。

我们通过将 MongoDB 部署到生产 Linux 服务器来结束本课程。让MongoDB在生产环境中运行有几个非常重要的步骤,我们将逐步完成此设置。

最后,您将准备好开始构建和运行高性能、MongoDB 支持的、数据驱动的应用程序

查看完整的课程大纲。

 你会学到什么?

在本课程中,您将:

  • 文档数据库(如 MongoDB)的工作原理
  • MongoDB在世界上使用的更大范围内的数据库中的位置
  • 如何安装和配置 MongoDB 以及多个管理工具和 GUI
  • 一组基本的 MongoDB 原生 shell 命令和查询
  • 基础技术,例如 Pydantic 和 Python 的 async 和 await
  • 如何使用 Beanie 和 Pydantic 设计数据模型
  • 了解使用文档对数据进行建模时的权衡
  • 了解何时将数据嵌入其他记录是个好主意(何时是个坏主意)
  • 使用 ORM 风格的编程与 MongoDB 和 Beanie 结合使用
  • 使用更高效的“就地”操作,例如将 addToSet 与 Beanie 结合使用
  • 在Pydantic中设计投影类以提高性能
  • 如何在MongoDB中安全地存储用户帐户(即密码)
  • 将 Beanie 和 MongoDB 与 FastAPI 深度集成
  • 从 Beanie 在 MongoDB 中创建复杂索引,性能提升 1000 倍
  • 在MongoDB中使用索引强制执行数据完整性
  • 在多台 Linux 机器上的云提供商内的自托管环境中安全地部署 MongoDB
  • 使用负载测试框架 Locust 探测和测试基于 MongoDB 的 Web API 的性能限制
  •  还有更多

  • 查看完整的课程大纲。

这门课程是为谁准备的?

适用于任何想要使用最新的 Python 技术来使用 MongoDB 的人。

至于先决条件,我们假设:

  • 基本熟悉 Python 编程语言和核心工具(例如 pip)
  • 您对某些数据库技术(关系或NoSQL)的理解和经验非常少

在本课程中选择和展示的工具是 100% 免费的,其中大多数是开源的或有免费和可靠的替代品。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。