启动mongodb副本集

use*_*599 1 mongodb

我在脚本中运行以下内容以自动启动副本集:

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);
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

{ "ok" : 0, "errmsg" : "Missing expected field \"version\"", "code" : 93 }
Run Code Online (Sandbox Code Playgroud)

我运行脚本后,我不知道为什么.

我已经尝试在本地运行脚本,使用以下内容:

mongo 192.168.1.46:27017 /opt/scripts/initreplset.js
Run Code Online (Sandbox Code Playgroud)

我正在使用mongodb v3.2.

Iva*_*van 6

我现在遇到同样的问题,可能是一个很新的东西,无论如何看起来版本字段现在是强制性的.

从官方文档:

version类型:int

用于区分副本集配置对象的修订版与配置的先前迭代的递增编号.

所以可能你只需要添加这个数字.即:

{
   "_id" : "rs0",
   "version" : 1,
   "members" : [
      {
         "_id" : 1,
         "host" : "mongodb0.example.net:27017"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)