我在脚本中运行以下内容以自动启动副本集:
var cfg = { _id: 'rs0',
members: [
{ _id: 0, host: '192.168.1.46:27017'},
{ _id: 1, host: '192.168.1.51:27017'},
{ _id: 2, host: '192.168.1.48:27017'}
]
};
var error = rs.initiate(cfg);
printjson(error);
但是我得到了:
{ "ok" : 0, "errmsg" : "Missing expected field \"version\"", "code" : 93 }
运行脚本后我不确定原因。
我尝试使用以下方法在本地运行脚本:
mongo 192.168.1.46:27017 /opt/scripts/initreplset.js
我正在使用mongodb v3.2。
答案 0 :(得分:6)
我现在遇到同样的问题,可能是一个很新的东西, 无论如何,似乎版本字段现在是强制性的。
来自官方文件:
版本 键入:int
用于区分副本修订的递增数字 从以前的迭代中设置配置对象 配置。
所以可能你只需要添加这个号码。 即:
{
"_id" : "rs0",
"version" : 1,
"members" : [
{
"_id" : 1,
"host" : "mongodb0.example.net:27017"
}
]
}