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

MongoDB in Action – Access MongoDB Databases with Python

By Jackson@ML

本文简要介绍用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), 如下图:

MongoDB实战 – 用Python访问MongoDB数据库-LMLPHP
在命令行中运行以下命令:

pip install pymongo

执行结果如下图所示:
MongoDB实战 – 用Python访问MongoDB数据库-LMLPHP
成功完成安装,所安装的最新版本为PyMongo 4.6.2。

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

3. 验证PyMongo

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

import pymongo

如下图所示:
MongoDB实战 – 用Python访问MongoDB数据库-LMLPHP
说明PyMongo库导入成功!

4. 创建MongoDB数据库

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

本地主机默认名称为localhost, MongoDB的默认端口号为27107,因此,编写代码如下:
(如果数据库不存在,MongoDB将创建数据库,并与之建立连接。)

theClient = pymongo.MongoClient("mongodb://localhost:27107/")
theDB = theClient["theDatabase"]

运行结果如下图所示:

MongoDB实战 – 用Python访问MongoDB数据库-LMLPHP
没有报错,说明执行成功!

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

print(theClient.list_database_names( ))

执行结果如下图所示:

MongoDB实战 – 用Python访问MongoDB数据库-LMLPHP
打印输出的结果是出现了四个内置数据库,分别为admin, config, local和test。

5. 验证数据库

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

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

DBList = myClient.list_database_names()
if "myDatabase" in DBList:
print("The database {} exists.".format(myDatabase))

6. 建立连接

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

代码示例如下:

from pymongo import MongoClient

client = MongoClient()
print(client)

执行结果如下图所示:

MongoDB实战 – 用Python访问MongoDB数据库-LMLPHP
如上例所示,要建立与数据库的连接,

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

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

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

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

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

client = MongoClient(host="localhost", port=27107)

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

client = MongoClient(“mongodb://localhost:27107)

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

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


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

您的认可,我的动力! 😃

02-29 18:32