2016-01-06 2 views
7

Так я разрабатывал проект с использованием Монго, и я получил сообщение об ошибке после выполнения кода: отображаемую db.usercollection.insert({ "username" : "testuser1", "email" : "[email protected]" })MongoDB ошибка: Не удается использовать readMode «команды», ухудшая в режим «унаследованных»

Ошибка:

Cannot use 'commands' readMode, degrading to 'legacy' mode WriteResult({ 
     "writeError" : { 
       "code" : 13, 
       "errmsg" : "not authorized on watersheds to execute command { insert: \"usercollection\", documents: [ { _id: ObjectId('568d0eda45d472b121116bef'), username: \"testuser1\", email: \"[email protected]\" } ], ordered: true }" 
     } }) 

db.version() является 3.0.7 и я установил MongoDB версия оболочки 3.2.0

Как мне это исправить?

С уважением, Daryll

+0

перезапустить оболочку mongo и выдать db.getMongo(). ForceReadMode ("legacy") илиdb.getMongo(). ForceReadMode ("совместимость"). – harshavmb

+3

Возможно, ваши версии оболочки и DB не совпадают. http://stackoverflow.com/questions/24916320/cannot-use-commands-write-mode-error-degrading-to-compatibility-mode – Buzut

ответ

2

Я просто перезапустить процесс mongod вместо этого и работает для меня.

0

Я не знаю, являетесь ли вы жертвой наличия replica set и потеряли Primary db или нет.
Если это так, заново создайте Первичный или используйте эту команду перед вставкой.

db.getMongo().setSlaveOk(); 
-1

Невозможно использовать 'commands' readMode, унизительную для legacy mode,

rs-ds017231:PRIMARY> show dbs 

rs-ds017231:PRIMARY> db 

rs-ds017231:PRIMARY>db.collection_name.insert({}) 

Это работает для меня!

0

Расширение на @ комментарий Buzut в выше ...

Я просто столкнулся с этой же ошибкой. Для меня проблема заключалась в разнице версий между клиентом, работающим локально, и версией mongo db, запущенной в облаке.

Чтобы убедиться, что это ваша проблема, запустите mongo --version и обратите внимание на номер версии. Затем подключитесь к оболочке mongo db и запустите db.version(), чтобы проверить версию там.

Если есть большая разница в этих числах (например, клиент версии 3 и версия 2 db), вам, скорее всего, придется переключиться на версию клиента, которая ближе к вашей версии db.

Чтобы сделать это, перейдите в Монго центр загрузки: https://www.mongodb.com/download-center#production

Выберите вашу платформу, а затем нажмите на кнопку «All Version Binaries», и искать загрузки, которая соответствует размещаемой дб.

Это будет загружать сжатый файл, который вам нужно распаковать. И внутри будет папка. Просто используйте путь к исполняемому файлу/bin/mongo (внутри этой папки), чтобы выполнить ваши команды mongo. Например:

/path/to/downloads/mongodb-osx-x86_64-2.6.9/bin/mongo <whatever mongo commands you want>

Надежда, что помогает.

2
db.getCollection(collectionName).count({}); 
db.getCollection(collectionName).find({}); 

Это работает! возможно, манго нуждается в другой операции.