MongoDB实战 – 用Python访问MongoDB数据库

MongoDB实战 -- 用Python访问MongoDB数据库

MongoDB in Action -- Access MongoDB Databases with Python

By Jackson@ML

Python语言功能强大众所周知,在数据库管理领域也无所不能。MongoDB是文档数据库,属于NoSQL数据库的一种,在业界也非常有名。

本文简要介绍用Python如何实现连接和访问MongoDB数据库,希望对广大读者有所帮助。

首先,Python可用于数据库应用程序。由于MongoDB为最受欢迎的NoSQL数据库之一,因此,如何使用及访问它,也备受关注。

1. 获取MongoDB

MongoDB将数据存储在类似JSON的文档中,这使得数据库访问变得异常灵活,它还具备很好的可扩展性。

1)获取途径

用户可以在 https://www.mongodb.com 下载免费的 MongoDB 数据库。或者,注册登录,以开始使用 MongoDB 云服务,https://www.mongodb.com/cloud/atlas。

2)下载安装MongoDB

获取并安装MongoDB数据库,请参看笔者文章:2024最新版MongoDB安装使用指南。本文不再赘述。

本文提供了典型的示例代码,便于通过实验来访问 MongoDB 数据库。

2. 获取PyMongo

使用Python语言访问MongoDB数据库,必须具备PyMongo这个外挂库,这是Python操作MongoDB的driver(驱动)。

为了实现这一目的,需要先下载和安装Python最新版3.12.2。安装步骤参考文章:2024最新版Python 3.12.2安装使用指南。 本文亦不再赘述。

安装好最新版Python 3.12.2后,就具备了Python包管理器pip, 可以用它来安装外挂库PyMongo。

以管理员身份运行命令行提示符(cmd), 如下图:

在命令行中运行以下命令:

bash 复制代码
pip install pymongo

执行结果如下图所示:

成功完成安装,所安装的最新版本为PyMongo 4.6.2。

这样一来,MongoDB的驱动就安装好了。

3. 验证PyMongo

打开IDLE交互式命令行,运行以下命令:

bash 复制代码
import pymongo

如下图所示:

说明PyMongo库导入成功!

4. 创建MongoDB数据库

为了在 MongoDB 中创建新的数据库,首先需要创建一个 MongoClient 对象,创建完毕赋值给变量theClient,这就是新的MongoClient对象,然后使用正确的 IP 地址和要创建的数据库的名称(theDatabase)指定连接 URL。

本地主机默认名称为localhost, MongoDB的默认端口号为27107,因此,编写代码如下:

(如果数据库不存在,MongoDB将创建数据库,并与之建立连接。)

python 复制代码
theClient = pymongo.MongoClient("mongodb://localhost:27107/")
theDB = theClient["theDatabase"]

运行结果如下图所示:

没有报错,说明执行成功!

接下来,验证数据库是否存在(即验证新创建的数据库):

python 复制代码
print(theClient.list_database_names( ))

执行结果如下图所示:

打印输出的结果是出现了四个内置数据库,分别为admin, config, local和test。

5. 验证数据库

上面例子中,print()函数并未得到打印输出结果。

如果需要验证,myDatabase是否存在,则可以使用条件表达式来判断,代码如下:

python 复制代码
DBList = myClient.list_database_names()
if "myDatabase" in DBList:
print("The database {} exists.".format(myDatabase))

6. 建立连接

如果为了简便,在导入pymongo库的时候,将其子模块MongoClient导入,则可以节省代码段长度,简洁引用,从而连接到数据库。

代码示例如下:

python 复制代码
from pymongo import MongoClient

client = MongoClient()
print(client)

执行结果如下图所示:

如上例所示,要建立与数据库的连接,

  • 首先,需要创建一个 MongoClient 实例。此类为 MongoDB 实例或服务器提供客户端。每个客户端对象都有一个内置连接池,默认情况下,该连接池最多可处理与服务器的一百个连接。

返回到 Python 交互式会话并从 pymongo 导入 MongoClient。

  • 然后创建一个客户端对象,以便与当前运行的 MongoDB 实例进行通信。

上述代码建立了与默认本地主机(localhost)端口27107之间的连接。MongoClient采用一系列参数来指定自定义主机、端口号以及其它参数。

如果需要自定义主机和端口号,示例代码如下:

python 复制代码
client = MongoClient(host="localhost", port=27107)

当用户需要与MongoDB默认设置不同的主机和端口号时,这样写代码很方便;当然,还可以使用MongoDB URI格式,代码如下:

python 复制代码
client = MongoClient("mongodb://localhost:27107")

以上示例都可以提供相同的客户端设置来连接当前的MongoDB实例。选择哪个取决于用户的具体需求。

将MongoClient实例化后,就可以使用其实例来引用对特定数据库的连接。


技术好文陆续推出,敬请关注。

您的认可,我的动力! 😃

相关推荐
sun00770043 分钟前
mysql索引底层原理
数据库·mysql
chao_7893 小时前
二分查找篇——搜索旋转排序数组【LeetCode】一次二分查找
数据结构·python·算法·leetcode·二分查找
烛阴3 小时前
Python装饰器解除:如何让被装饰的函数重获自由?
前端·python
workflower3 小时前
MDSE和敏捷开发相互矛盾之处:方法论本质的冲突
数据库·软件工程·敏捷流程·极限编程
Tony小周4 小时前
实现一个点击输入框可以弹出的数字软键盘控件 qt 5.12
开发语言·数据库·qt
noravinsc4 小时前
django 一个表中包括id和parentid,如何通过parentid找到全部父爷id
python·django·sqlite
lifallen4 小时前
Paimon 原子提交实现
java·大数据·数据结构·数据库·后端·算法
ajassi20004 小时前
开源 python 应用 开发(三)python语法介绍
linux·python·开源·自动化
沉默媛4 小时前
如何安装python以及jupyter notebook
开发语言·python·jupyter
TDengine (老段)4 小时前
TDengine 数据库建模最佳实践
大数据·数据库·物联网·时序数据库·tdengine·涛思数据