2011-01-18 6 views
8

Savez-vous s'il est possible d'obtenir une liste de bases de données (comme 'show dbs' dans la console) à partir de javascript. Je veux abandonner toutes les bases de données de mongo via javascript fichier (mongo admin.js), mais je ne peux pas trouver un moyen de lister toutes les bases de données ...MongoDb shell script

Thx

Je suis en train de préparer script simple mais je ne peux pas savoir comment je peux changer db du script. Voici l'exemple de script javascript. Il échoue toujours sur la commande "use". J'ai essayé avec db.eval et eval mais ça échoue.

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

Apparemment, il est préférable de la pratique d'utiliser un "séquentielle" pour la boucle à la place. Voir http://stackoverflow.com/a/3010848/156060. Voici un peu de JavaScript que je viens d'utiliser pour supprimer toutes les bases de données sur mon serveur MongoDB: https://gist.github.com/1754355 –

Répondre

12

Utilisez db.adminCommand('listDatabases'). Pour les autres commandes voir http://www.mongodb.org/display/DOCS/List+of+Database+Commands

EDIT:

Dans util.jsuse dbname est défini comme:

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

yes, thx. Mais comment puis-je passer à différents db via un script? J'ai mis à jour la description avec un exemple de script. – user253202

+0

J'ai mis à jour le post. – pingw33n