Node.js 如何使用nodejs脚本部署mongodb复制集(复制集部署自动化)
我必须使用nodeJS脚本部署一个副本集。如果我必须在稍后的时间从副本集中添加或删除一些成员,那么我应该能够使用脚本来完成。Node.js 如何使用nodejs脚本部署mongodb复制集(复制集部署自动化),node.js,mongodb,database-replication,high-availability,Node.js,Mongodb,Database Replication,High Availability,我必须使用nodeJS脚本部署一个副本集。如果我必须在稍后的时间从副本集中添加或删除一些成员,那么我应该能够使用脚本来完成。 问题是我找不到类似于rs.initiate(config)的db.initiate(config)之类的东西。它是db.admin().initiate(config)吗?如果您想通过Node.js发送副本集配置命令,您需要使用副本集管理命令: 初始化复制集的步骤 对于任何后续更改(即添加或删除成员) MongoDB节点驱动程序测试套件中的文件包含一些用于管理副本集的
问题是我找不到类似于rs.initiate(config)的db.initiate(config)之类的东西。它是db.admin().initiate(config)吗?如果您想通过Node.js发送副本集配置命令,您需要使用副本集管理命令:
- 初始化复制集的步骤
- 对于任何后续更改(即添加或删除成员)
reStartAndConfigure()
,副本集配置更改的一般步骤包括:
- 连接到
数据库本地
var connection = new Db("local", ... )
- 从
集合:系统中获取当前副本集配置。replset
db.collection('system.replset').findOne({}, function(err, doc) { ...
- 迭代所有成员文档并应用任何配置更改
for (var i = 0; i < doc.members.length; i++) { ... }
- 使用
命令重新配置replSetReconfig
db.admin().command({replSetReconfig: doc}, ... )
rs.add
和rs.remove
shell帮助程序(不带括号),查看replSetReconfig
命令如何在mongo
shell中使用的示例。您可以从MongoDB源代码中查看源代码作为起点。它在shell中充当助手,允许您启动副本集进行测试。类似地,您可以在mongo shell下查看这些代码,只需键入rs.initiate
,而不必在末尾键入()
括号,这将把JavaScript包装器转储到底层数据库命令。
db.admin().command({replSetReconfig: doc}, ... )