Optie 2 is waarschijnlijk de schoonste. Ervan uitgaande dat je een Mongoose Connection hebt object met de naam conn dat is geopend met mongoose.createConnection , hebt u toegang tot de native mongo Db object via conn.db . Van daaruit kunt u collectionNames . aanroepen die moet bieden wat u zoekt:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
U kunt ook een collectienaam als parameter doorgeven aan collectionNames om de resultaten te filteren naar wat u zoekt.
Mongoose 4.x-update
In de 2.x-versie van de MongoDB native driver die Mongoose 4.x gebruikt, collectionNames is vervangen door listCollections die een filter accepteert en een cursor retourneert, dus je zou dit doen als:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});