Вариант 2 е може би най-чистият. Ако приемем, че имате Connection на Mongoose обект с име conn който е отворен с помощта на mongoose.createConnection , можете да получите достъп до родния монго Db обект чрез conn.db . От там можете да извикате collectionNames което трябва да осигури това, което търсите:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
Можете също да подадете име на колекция като параметър на collectionNames за да филтрирате резултатите само до това, което търсите.
Актуализация на Mongoose 4.x
Във версията 2.x на собствения драйвер на MongoDB, който Mongoose 4.x използва, collectionNames е заменен от listCollections който приема филтър и връща курсор, така че да направите това като:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});