2014-10-01 57 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)