2014-05-12 6 views

Répondre

2

Si vous voulez frapper mongodb directement via le Node.js api natif, vous pouvez utiliser db.collectionNames():

Liste des collections existantes

Liste des noms

Collections peuvent être répertoriés avec collectionNames

db.collectionNames (rappel); Callback obtient deux paramètres - un objet d'erreur (si une erreur s'est produite) et un tableau de noms de collection en tant que chaînes.

Les noms de collection incluent également le nom de la base de données, ainsi une collection nommée messages dans un blog de base de données sera répertoriée comme blog.posts.

De plus, il y a des collections système qui ne doivent pas être modifiées sans savoir exactement ce que vous faites, ces sollections peuvent être identifiées par avec le préfixe du système. Par exemple posts.system.indexes.

Exemple:

var MongoClient = require('mongodb').MongoClient , format = require('util').format; 

MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) { 

    if(err) throw err; 
    db.collectionNames(function(err, collections){ 
     console.log(collections); 
    }); 
}); 

http://mongodb.github.io/node-mongodb-native/markdown-docs/collections.html

+1

Cette méthode n'existe plus depuis cette migration: http: //mongodb.github.io/node-mongodb-native/2.0/meta/changes-from-1.0/ –

1

Vous pouvez utiliser

db.system.namespaces.find({ name: dbName +'.' + collectionName }); 

Il contient des entrées pour les collections et les indices, pour la collecte existants, il doit retourner quelque chose comme ceci:

{ "name" : "temp333.categories" } 

Pour le faire à partir mangouste vous pouvez définir system.namespaces modèle et requête.

Questions connexes