La opción 2 es probablemente la más limpia. Suponiendo que tiene una Mongoose Connection
objeto llamado conn
que se ha abierto usando mongoose.createConnection
, puede acceder al mongo nativo Db
objeto a través de conn.db
. Desde allí puedes llamar a collectionNames
que debería proporcionar lo que estás buscando:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
También puede pasar un nombre de colección como parámetro a collectionNames
para filtrar los resultados a lo que está buscando.
Actualización de Mongoose 4.x
En la versión 2.x del controlador nativo MongoDB que usa Mongoose 4.x, collectionNames
ha sido reemplazado por listCollections
que acepta un filtro y devuelve un cursor, por lo que haría esto como:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});