MongoEngine - 连接到 MongoDB 数据库

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

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

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

默认情况下,MongoDB 服务器在本地主机和端口 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://localhost/database_name')

connect() 函数有另一个可选参数,称为 replicaset。 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')