私はmongoShellで遊んでいて、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>
を介して接続した後に同様のクエリを実行すると、すべて問題ありません。
通信しているサーバーよりも新しいシェルを使用しています。
db.version()
を介してシェルからサーバーのバージョンを確認できます-version()
を使用してシェルのバージョンを確認します
2.6以降、mongodサーバーは、以前に使用した挿入/更新/削除オペコードとは異なる新しい書き込みコマンドの使用を開始しました(これはすべて MongoDBワイヤープロトコル で説明されています)。
これは無害な「情報」警告です。ただし、サーバーと同じバージョンのシェルを使用して、そのようなことについて不思議に思わないようにすることをお勧めします。