Mongoengine 简明教程

Connecting to MongoDB Database

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

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

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

默认情况下,MongoDB 服务器在 localhost 上和 27017 端口上运行。若要自定义,你应当向 connect() 提供 host 和 port 参数 −

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

如果数据库需要身份验证,则应当提供其凭据,例如 username、password 和 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 中的 replica set(副本集)是在其上维护相同数据集的 mongod 进程组。Replica set 是所有生产部署的基础。

connect(host='mongodb://localhost/dbname?replicaSet=rs-name')

定义了以下副本集方法:

rs.add()

向 replica set 添加一个成员。

rs.conf()

返回 replica set 配置文档。

rs.freeze()

阻止当前成员在一段时间内作为 primary 寻求选举。

rs.initiate()

初始化新的 replica set。

rs.reconfig()

通过应用新的 replica set 配置对象来重新配置 replica set。

rs.remove()

从 replica set 中移除一个成员。

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

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