MongoEngine 连接 MongoDB 数据库


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

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

from mongoengine import connect
connect(‘mydata.db’)

默认情况下,MongoDB 服务器在 localhost 和 27017 端口上运行。要自定义,你应该向 connect() 提供主机和端口参数:

connect('mydata.db', host='192.168.1.1', port=12345)

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

connect('mydata.db', username='user1', password='***', authentication_source='admin')

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

connect('mydata.db', host='mongodb:// 本地主机/数据库名称')

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

connect(host='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')