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