连接到 MongoDB 数据库


如前所述,您应该首先使用 mongod 命令启动 MongoDB 服务器。

MongoEngine 提供 connect() 函数来连接到正在运行的 mongodb 服务器实例。

从 mongoengine 导入连接
连接('mydata.db')

默认情况下,MongoDB 服务器在本地主机和端口 27017 上运行。要进行自定义,您应该为 connect() 提供主机和端口参数 -

连接('mydata.db',主机='192.168.1.1',端口=12345)

如果数据库需要身份验证,则应提供其凭据,例如用户名、密码和authentication_source 参数。

连接('mydata.db',用户名='user1',密码='***',authentication_source='admin')

MongoEngine 还支持 URI 样式连接而不是 IP 地址。

连接('mydata.db',host='mongodb://localhost/database_name')

connect() 函数还有另一个可选参数,称为replicaset。MongoDB 是一个分布式数据库。存储在一台服务器中的数据通常会复制到许多服务器实例中,以确保高可用性。MongoDB 中的副本集是一组维护相同数据集的 mongod 进程。副本集是所有生产部署的基础。

连接(主机='mongodb://localhost/dbname?replicaSet=rs-name')

以下副本集方法定义如下:

rs.add() 将成员添加到副本集。
rs.conf() 返回副本集配置文档。
rs.freeze() 防止当前成员在一段时间内寻求当选为主要成员。
rs.initiate() 初始化一个新的副本集。
rs.reconfig() 通过应用新的副本集配置对象来重新配置副本集。
rs.remove() 从副本集中删除成员。

MongoEngine还允许连接多个数据库。您需要为每个数据库提供唯一的别名。例如,以下代码将 Python 脚本连接到两个 MongoDB 数据库。

connect(alias='db1', db='db1.db')
connect(alias='db2', db='db2.db')