Možnost 2 je pravděpodobně nejčistší. Za předpokladu, že máte Connection
Mongoose objekt s názvem conn
který byl otevřen pomocí mongoose.createConnection
, máte přístup k nativnímu mongo Db
objekt přes conn.db
. Odtud můžete volat collectionNames
který by měl poskytnout to, co hledáte:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
Název kolekce můžete také předat jako parametr do collectionNames
filtrovat výsledky přesně podle toho, co hledáte.
Aktualizace Mongoose 4.x
Ve verzi 2.x nativního ovladače MongoDB, který Mongoose 4.x používá, collectionNames
byl nahrazen listCollections
který přijímá filtr a vrací kurzor, takže byste to udělali takto:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});