我在副本集中有5个mongo成员。我从中删除了3。
如何将其他成员中的“_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 :(得分:0)
直接编辑副本集配置可能不是一种优雅的方式。而是使用rs.remove(hostname)
命令从副本集中删除成员,这样您就不必在重新配置期间关闭主数据库,这将自动将升序值分配给“_id”字段。
答案 1 :(得分:0)
尝试按照此处所述删除从属集合:http://docs.mongodb.org/manual/tutorial/troubleshoot-replica-sets/#duplicate-key-error-on-local-slaves
主人将在下次需要时重新创建该集合。
答案 2 :(得分:0)
你可以在Mongo控制台中试试这个:
conf = rs.conf()
conf.members[0]._id = 0
conf.members[1]._id = 1
conf.members[2]._id = 2
rs.reconfig(conf)