2014-07-23 22 views
21

Sadece mongo kabuğuyla oynuyorum ve Cannot use commands write mode, degrading to compatibility mode ile karşılaştım. Komutları kullanamazsınız yazma modu hatası, Uyumluluk moduna geçme

ben uzaktan Mongo sunucusuna (mongolab) bağlı ve benim basit komut dosyası tarafından koleksiyonuna yeni bir kayıt eklemek çalıştı:

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

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

Ben mongo script.js tarafından komut dosyasını çalıştırmak ve got:

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 

nedir yanlış? Ek olarak, mongo my.mongolab.com:port/DBname -u <dbuser> -p <dbpassword> aracılığıyla bağlandıktan sonra benzer bir sorguyu yürüttüğümde her şey yolunda.

+5

2,6'dan küçük bir sürüm olan MongoDB örneğine bağlanıyorsunuz. İnsanlara çok daha fazla gelecekteki yararı olma ihtimali yoktur, çünkü bu zaman içinde ortadan kalkacaktır. Bu sadece bir uyarıdır ve "genel olarak" işlemleri etkilemez. –

+0

@NeilLunn thank's. Aslında kayıt eklenmiştir. Bunu fark etmedim üzgünüm. Peki ya üretim ortamı hakkında, bu uyarıyı görmezden gelebilir miyim? – NHG

+0

@NHG http://www.mongodb.org/ adresinden doğru sürümü ('db.version()' öğesine göre) her zaman indirebilirsiniz. https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.7.tgz –

cevap

26

İletişim kurduğu sunucudan daha yeni bir kabuk kullanıyorsunuz.

Sen db.version() aracılığıyla kabuğundan sunucu sürümünü kontrol edebilirsiniz - mongod sunucu daha önce ekleme/güncelleme/kaldırma kullanın farklı olan yeni yazma komutlarını kullanmaya başladı

version() 2.6 ile başlayarak kullanmak kabuk sürümünü kontrol etmek op kodu (hepsi MongoDB Wire Protocol'da açıklanmıştır).

Bu, zararsız "bilgilendirme" uyarısıdır. Böyle şeyler hakkında merak etmekten kaçınmak için sunucuyla aynı sürüm kabuğunu kullanmak iyi bir fikirdir.

İlgili konular