Подтвердить что ты не робот

Невозможно использовать команды для записи в режиме записи, Деградация в режим совместимости

Я просто играю с оболочкой 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>, все в порядке.

4b9b3361

Ответ 1

Вы используете оболочку, которая более новая, чем сервер, с которой он обменивается.

Вы можете проверить версию сервера из оболочки через db.version() - для проверки версии оболочки, используемой version()

Начиная с 2.6, сервер mongod начал использовать новые команды записи, отличные от ранее используемого кода для ввода/обновления/удаления вставки (все это описано в Протоколе MongoDB Wire).

Это безобидное "информационное" предупреждение. Это хорошая идея использовать ту же оболочку версии, что и сервер, чтобы не задаваться вопросом о таких вещах.