连接 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://127.0.0.1/database_name')

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

connect(host='mongodb://127.0.0.1/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')
广告