MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Node.js - Mongoose - Verifique se existe uma coleção


A opção 2 é provavelmente a mais limpa. Supondo que você tenha uma Connection do Mongoose objeto chamado conn que foi aberto usando mongoose.createConnection , você pode acessar o mongo nativo Db objeto via conn.db . De lá, você pode chamar collectionNames que deve fornecer o que você está procurando:
conn.db.collectionNames(function (err, names) {
    // names contains an array of objects that contain the collection names
});

Você também pode passar um nome de coleção como um parâmetro para collectionNames para filtrar os resultados apenas para o que você está procurando.

Atualização do Mongoose 4.x

Na versão 2.x do driver nativo do MongoDB que o Mongoose 4.x usa, collectionNames foi substituído por listCollections que aceita um filtro e retorna um cursor, então você faria isso como:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
    .next(function(err, collinfo) {
        if (collinfo) {
            // The collection exists
        }
    });