21

我只是玩 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 });

我运行脚本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

怎么了?此外,当我通过mongo my.mongolab.com:port/DBname -u <dbuser> -p <dbpassword>一切正常连接后执行类似查询时。

4

1 回答 1

26

您使用的 shell 比与之通信的服务器更新。

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

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

这是一个无害的“信息性”警告。使用与服务器相同版本的 shell 是一个好主意,以避免对这些事情产生疑惑。

于 2014-12-26T23:34:27.730 回答