2011-01-18 36 views
8

Eğer javascript'ten veritabanlarının bir listesini (konsolda 'show dbs' gibi) almak mümkün olup olmadığını biliyor musunuz?MongoDb kabuk komut dosyası

Thx Basit senaryoyu hazırlamak için çalışıyorum

... Ben (Mongo admin.js) JavaScript dosyası ile Mongo'da gelen tüm veritabanlarını damla istiyorum, ama tüm veritabanlarını listelemek için bir yol bulamıyorum ama db'yi betikten nasıl değiştirebileceğimi bulamıyorum. İşte örnek javascript komut dosyası. Her zaman "kullanım" komutunda başarısız olur. Db.eval ve eval ile çalıştım ama başarısız oluyor.

print(db.getMongo().getDBNames()); 
var environments = db.getMongo().getDBNames() 
for(var environmentIndex in environments){ 
    print(environments[environmentIndex]) 
    eval("use staging"); 
    //db.dropDatabase(); 
} 
+0

:

use dbnameutil.js yılında olarak tanımlanır. Http://stackoverflow.com/a/3010848/156060 adresine bakın. İşte bazı JavaScript'leri MongoDB sunucumdaki tüm veritabanlarına bırakmak için kullanıyorum: https://gist.github.com/1754355 –

cevap

12

db.adminCommand('listDatabases')'u kullanın. Diğer komutlar http://www.mongodb.org/display/DOCS/List+of+Database+Commands

EDIT için bkz: Anlaşılan o ki yerine döngü için bir "sıralı" kullanmak daha iyi uygulamadır

shellHelper.use = function(dbname){ 
    db = db.getMongo().getDB(dbname); 
    print("switched to db " + db.getName()); 
} 
+0

evet, thx. Ama komut dosyası aracılığıyla farklı db'ye nasıl geçebilirim? Açıklamayı örnek komut dosyasıyla güncelledim. – user253202

+0

Yayını güncelledim. – pingw33n

İlgili konular