2014-10-01 94 views
0

我在副本集中有5個mongo成員。我從它刪除3後。如何更新Mongodb副本集配置中的_id?

如何將其他成員中的「_id」更改爲值「0」,「1」和「2」?

rs.conf() 
{ 
     "_id" : "rs0", 
     "version" : 151261, 
     "members" : [ 
       { 
         "_id" : 3, 
         "host" : "mongodb3:27017" 
       }, 
       { 
         "_id" : 4, 
         "host" : "mongodb4:27017" 
       }, 
       { 
         "_id" : 5, 
         "host" : "ok:27017", 
         "arbiterOnly" : true 
       } 
     ] 
} 

回答

0

直接編輯副本集配置可能不是一個很好的方法。請使用rs.remove(hostname)命令從副本集中刪除成員,這樣,您無需在重新配置期間降低主要成員,從而自動將升序排列值分配給「_id」字段。

+0

我不太明白的步驟。我嘗試刪除一個成員,但在此成員自動獲取_id(4或5)的舊值後 – shilovk 2014-10-30 07:57:23

0

你可以在蒙戈控制檯試試這個:

conf = rs.conf() 

conf.members[0]._id = 0 
conf.members[1]._id = 1 
conf.members[2]._id = 2 

rs.reconfig(conf)