database - 如何在 MongoDB 的 rs.conf() 中获取当前成员索引?
问题描述
我正在创建一个带有隐藏辅助 MongoDB 实例的 Docker 容器,用于数据备份。我发现将 MongoDB 实例配置为隐藏辅助的唯一方法是在它开始之后获取和设置、和rs.conf()
的相应成员值。但是,我无法自动确定成员数组中当前实例的集群成员索引是什么。有任何想法吗?votes
priority
hidden
这是需要执行的脚本,其中 2 应该替换为当前成员索引。
cfg = rs.conf()
cfg.members[2].priority = 0
cfg.members[2].votes = 0
cfg.members[2].hidden = true
rs.reconfig(cfg)
解决方案
可能是这样的:
rso:PRIMARY> var myid=0;var x=0;var myself=db.isMaster().me ;rs.conf().members.forEach(function(d){ if(d.host==myself){ myid=x;print("The id is: "+myid)};x=x+1; })
The id is: 2
rso:PRIMARY> cfg.members[myid].priority=0
解释:
- 使用 db.isMaster().me 获取“主机:端口”
- 遍历所有 conf().members 并搜索哪个是我
- 将 myid 分配给我的成员。
推荐阅读
- rest - REST:当请求更改多个实体的状态时返回什么?
- java - java中SELECT的方法:返回什么以及如何关闭资源?
- redis - Windows 上的 Redis 抛出错误:READONLY You can't write against a read only slave., sPort: xxxxx , LastCommand:
- javascript - 如何使用 React Router 获取多个参数
- javascript - 带有 setTimeout 延迟无限循环的 Vanilla Javascript 信息代码
- .net - 如何编写后控制器操作方法以在.Net Core Web API中调用外部api
- ios - api 请求之间的冷却时间
- typescript - 带有方法的 TypeScript 类型保护属性
- apache-spark - PySpark:是否有可能根据非 Null 值创建动态数量的 DataFrame
- tsql - SQL Server:如何按特定顺序显示我的数据