Mongodb
使用 JS 根據主機名更新 mongo 的優先級
有沒有辦法根據主機名而不是順序來調整節點的優先級。
使用序列 -
cfg=rs.conf() cfg.members[0].priority=100 cfg.members[1].priority=10 cfg.members[2].priority=10 cfg.members[3].priority=0 cfg.members[4].priority=0 rs.reconfig(cfg)
我需要的是類似的東西,
cfg=rs.conf() cfg.members[where name like 'abc'].priority=100 cfg.members[where name like 'pqr'].priority=10 cfg.members[where name like 'xyz'].priority=10 cfg.members[where name like '10.12.13.14'].priority=0 cfg.members[where name like '10.12.13.14'].priority=0 rs.reconfig(cfg)
使用序列更新大量不同集群的副本集將是困難的。
主機名的順序不是按順序排列的。因此,如果我需要在維護期間更新具有最高優先級的特定主機,我不能依賴順序。可能使用java腳本很容易。
是的,您可以使用這樣的 Javascript:
cfg = rs.conf() cfg.members.forEach(function(member) { if (member.host.includes("abc")) member.priority = 100 else if (/xyz/.test(member.host)) member.priority = 10 else if (member.host == '10.12.13.14') member.priority = 0; }) rs.reconfig(cfg)