オプション2がおそらく最もクリーンです。マングースのConnectionがあると仮定します connという名前のオブジェクト mongoose.createConnectionを使用して開かれています 、ネイティブのmongo Dbにアクセスできます conn.db経由のオブジェクト 。そこからcollectionNamesを呼び出すことができます これはあなたが探しているものを提供するはずです:
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
コレクション名をパラメーターとしてcollectionNamesに渡すこともできます 結果を探しているものだけにフィルタリングします。
Mongoose4.xアップデート
Mongoose 4.xが使用するMongoDBネイティブドライバーの2.xバージョンでは、collectionNames listCollectionsに置き換えられました これはフィルターを受け入れてカーソルを返すので、次のように実行します。
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});