L'option 2 est probablement la plus propre. En supposant que vous ayez une Connection
Mongoose objet nommé conn
qui a été ouvert en utilisant mongoose.createConnection
, vous pouvez accéder au mongo natif Db
objet via conn.db
. De là, vous pouvez appeler collectionNames
qui devrait fournir ce que vous recherchez :
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
Vous pouvez également passer un nom de collection en tant que paramètre à collectionNames
pour filtrer les résultats en fonction de ce que vous recherchez.
Mise à jour de Mongoose 4.x
Dans la version 2.x du pilote natif MongoDB utilisé par Mongoose 4.x, collectionNames
a été remplacé par listCollections
qui accepte un filtre et renvoie un curseur pour que vous procédiez comme suit :
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});