2014-07-23 4 views
21

Ich spiele nur mit Mongo Shell und kam mit Cannot use commands write mode, degrading to compatibility mode.Befehle können nicht verwendet werden Schreibmodus Fehler, Abbau zu Kompatibilitätsmodus

ich mit Remote-Mongo-Server (mongolab) und versuchte, durch mein einfaches Skript neuen Datensatz Sammlung einzufügen:

// script.js 
db = connect(host + ":" + port +"/" + dbName); 
db.auth(username, password); 

db.test2.insert({ item: "card", qty: 15 }); 

I Skript ausführen von mongo script.js und bekam:

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 

Was ist falsch? Zusätzlich, wenn ich ähnliche Abfrage nach der Verbindung über mongo my.mongolab.com:port/DBname -u <dbuser> -p <dbpassword> ausgeführt habe, ist alles in Ordnung.

+5

Sie stellen eine Verbindung zu einer MongoDB-Instanz her, die eine niedrigere Version als 2.6 aufweist. Es ist unwahrscheinlich, dass es den Menschen in Zukunft viel mehr nützen wird, da dies mit der Zeit verschwinden wird. Es ist nur eine Warnung und wirkt sich nicht "generell" auf Operationen aus. –

+0

@NeilLunn danke. Tatsächlich wurde ein Datensatz eingefügt. Das habe ich nicht bemerkt, tut mir leid. Aber was ist mit Produktionsumgebung, kann ich diese Warnung ignorieren? – NHG

+0

@NHG Sie können immer die korrekte Version (nach 'db.version()') von http://www.mongodb.org/ z. https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.7.tgz –

Antwort

26

Sie verwenden eine Shell, die neuer ist als der Server, mit dem sie kommuniziert.

können Sie überprüfen die Server-Version von der Shell über db.version() - Shell-Version zu überprüfen, verwenden Sie version()

mit 2.6 Starten des mongod-Server mit neuen Schreibbefehle gestartet, die zuvor anders sind als die Verwendung insert/update/entfernen Op-Code (dies ist alles in der MongoDB Wire Protocol beschrieben).

Dies ist eine harmlose "informative" Warnung. Es ist eine gute Idee, die gleiche Versionshell wie den Server zu verwenden, um sich über solche Dinge zu wundern.

Verwandte Themen