L'opzione 2 è probabilmente la più pulita. Supponendo che tu abbia una Connection
Mongoose oggetto denominato conn
che è stato aperto utilizzando mongoose.createConnection
, puoi accedere al mongo nativo Db
oggetto tramite conn.db
. Da lì puoi chiamare collectionNames
che dovrebbe fornire ciò che stai cercando:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
Puoi anche passare un nome di raccolta come parametro a collectionNames
per filtrare i risultati in base a ciò che stai cercando.
Aggiornamento di Mongoose 4.x
Nella versione 2.x del driver nativo MongoDB utilizzato da Mongoose 4.x, collectionNames
è stato sostituito da listCollections
che accetta un filtro e restituisce un cursore, quindi lo faresti come:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});