我只是玩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>
连接后执行类似的查询时,一切正常。
答案 0 :(得分:26)
您使用的shell比其正在与之通信的服务器更新。
您可以通过db.version()
检查shell中的服务器版本 - 检查您使用的shell版本version()
从2.6开始,mongod服务器开始使用新的写入命令,这些命令与先前使用的插入/更新/删除操作码不同(这在MongoDB Wire Protocol中有所描述)。
这是一个无害的“信息”警告。最好使用相同的版本shell作为服务器,以避免对这些事情感到疑惑。