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实例化后,就可以使用其实例来引用对特定数据库的连接。


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

您的认可,我的动力! 😃

相关推荐
R_AirMan8 分钟前
深入浅出Redis:一文掌握Redis底层数据结构与实现原理
java·数据结构·数据库·redis
蹦蹦跳跳真可爱58915 分钟前
Python----OpenCV(几何变换--图像平移、图像旋转、放射变换、图像缩放、透视变换)
开发语言·人工智能·python·opencv·计算机视觉
蹦蹦跳跳真可爱58919 分钟前
Python----循环神经网络(Transformer ----Layer-Normalization(层归一化))
人工智能·python·rnn·transformer
m0_6256865521 分钟前
Day58
python
Hello.Reader21 分钟前
RedisJSON 内存占用剖析与调优
数据库·redis·缓存
夜阳朔24 分钟前
Conda环境激活失效问题
人工智能·后端·python
m0_723140231 小时前
Python训练营-Day49
开发语言·python
wkj0011 小时前
php 如何通过mysqli操作数据库?
android·数据库·php
北风toto1 小时前
python学习DataFrame数据结构
数据结构·python·学习
亿牛云爬虫专家1 小时前
微服务化采集平台:可扩展性与容错机制
python·微服务·架构·爬虫代理·扩展性·新浪财经·财经新闻