オプション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
}
});