sql >> Base de Datos >  >> NoSQL >> MongoDB

Node.js - Mongoose - Comprobar si existe una colección

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