Вариант 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
}
});