Opcja 2 jest prawdopodobnie najczystsza. Zakładając, że masz Mongoose Connection
obiekt o nazwie conn
który został otwarty za pomocą mongoose.createConnection
, możesz uzyskać dostęp do natywnego mongo Db
obiekt przez conn.db
. Stamtąd możesz zadzwonić do collectionNames
który powinien zapewnić to, czego szukasz:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
Możesz również przekazać nazwę kolekcji jako parametr do collectionNames
aby filtrować wyniki do tego, czego szukasz.
Aktualizacja Mongoose 4.x
W wersji 2.x natywnego sterownika MongoDB, którego używa Mongoose 4.x, collectionNames
został zastąpiony przez listCollections
który akceptuje filtr i zwraca kursor, więc zrobisz to w następujący sposób:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});