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