Невозможно использовать команды для записи в режиме записи, Деградация в режим совместимости
Я просто играю с оболочкой mongo и наткнулся на Cannot use commands write mode, degrading to compatibility mode
.
Я подключился к удаленному серверу mongo (mongolab) и попытался вставить новую запись в коллекцию с помощью моего простого script:
// script.js
db = connect(host + ":" + port +"/" + dbName);
db.auth(username, password);
db.test2.insert({ item: "card", qty: 15 });
Я запустил script на 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>
, все в порядке.
Ответы
Ответ 1
Вы используете оболочку, которая более новая, чем сервер, с которой он обменивается.
Вы можете проверить версию сервера из оболочки через db.version()
- для проверки версии оболочки, используемой version()
Начиная с 2.6, сервер mongod начал использовать новые команды записи, отличные от ранее используемого кода для ввода/обновления/удаления вставки (все это описано в Протоколе MongoDB Wire).
Это безобидное "информационное" предупреждение. Это хорошая идея использовать ту же оболочку версии, что и сервер, чтобы не задаваться вопросом о таких вещах.