无法使用命令写入模式错误,降级为兼容模式

NHG*_*NHG 21 mongodb mongo-shell

我只是玩mongo shell而且遇到了Cannot use commands write mode, degrading to compatibility mode.

我连接到远程mongo服务器(mongolab)并尝试通过我的简单脚本将新记录插入到集合中:

// script.js
db = connect(host + ":" + port +"/" + dbName);
db.auth(username, password);

db.test2.insert({ item: "card", qty: 15 });
Run Code Online (Sandbox Code Playgroud)

我运行脚本mongo script.js并得到:

MongoDB shell version: 2.6.3
connecting to: test
connecting to: my.mongolab.com:port/DBname
Cannot use commands write mode, degrading to compatibility mode
Run Code Online (Sandbox Code Playgroud)

怎么了?另外当我连接后执行类似的查询mongo my.mongolab.com:port/DBname -u <dbuser> -p <dbpassword>一切都OK.

Asy*_*sky 26

您正在使用比它正在与之通信的服务器更新的shell.

您可以通过db.version()- 检查shell中的服务器版本- 以检查您使用的shell版本version()

从2.6开始,mongod服务器开始使用新的写命令,这些命令与先前使用的插入/更新/删除操作码不同(这在MongoDB有线协议中都有描述).

这是一个无害的"信息"警告.最好使用相同的版本shell作为服务器,以避免对这些事情感到疑惑.