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
}
});