Option 2 ist wahrscheinlich die sauberste. Angenommen, Sie haben eine Mongoose-Connection
Objekt namens conn
die mit mongoose.createConnection
geöffnet wurde , können Sie auf die native mongo Db
zugreifen Objekt über conn.db
. Von dort aus können Sie collectionNames
aufrufen die das liefern sollte, wonach Sie suchen:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
Sie können auch einen Sammlungsnamen als Parameter an collectionNames
übergeben um die Ergebnisse genau nach Ihren Wünschen zu filtern.
Mongoose 4.x-Update
In der 2.x-Version des nativen MongoDB-Treibers, den Mongoose 4.x verwendet, collectionNames
wurde durch listCollections
ersetzt die einen Filter akzeptiert und einen Cursor zurückgibt, also würden Sie dies tun als:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});