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