Alternativ 2 är förmodligen det renaste. Förutsatt att du har en Mongoose Connection objekt med namnet conn som har öppnats med mongoose.createConnection , kan du komma åt den infödda mongon Db objekt via conn.db . Därifrån kan du ringa collectionNames som bör ge det du letar efter:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
Du kan också skicka ett samlingsnamn som en parameter till collectionNames för att filtrera resultaten till precis det du letar efter.
Mongoose 4.x-uppdatering
I 2.x-versionen av MongoDB-drivrutinen som Mongoose 4.x använder, collectionNames har ersatts av listCollections som accepterar ett filter och returnerar en markör så att du gör detta som:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});