1

show collections短いバージョン: 基本的に、mongoose の mongo シェルで行うことを実行したいと考えています。

長いバージョン:

ユーザーが基本的に独自のスキーマ > コレクション > ドキュメントを mongo + mongoose + node.js を使用して作成できるアプリケーションを作成したいと考えています。

このアプリケーションの最初のステップは、以前に作成されたコレクションとそのドキュメントを表示することです。しかし、これらはユーザーによって作成されるため、名前は不明です。私が見つけた最も近いコードは次のとおりです。

function find (collec, query, callback) {
    mongoose.connection.db.collection(collec, function (err, collection) {
    collection.find(query).toArray(callback);
    });
}

しかし、コレクションの名前がわからないので、「collec」パラメーターを渡すことができません。

では、名前を知らなくてもコレクションのリストを取得する方法を知っている人はいますか?

4

3 に答える 3

2

コレクション名を取得するために node-mongodb-native (mongoose が上で動作する mongo ドライバー) を使用することになりました。

var nmn_connect = require('mongoose/node_modules/mongodb').connect;

nmn_connect('mongo://localhost:27017/DATABASE', function(err, db) {
    if(!err){
        db.collectionNames(function(err, names){ // what I was looking for
            if(!err){
                console.log(names);
                db.close();
            }else{
                console.log(err);
                db.close();
            }
        });     
    }else{
        console.log(err)
    }
});

によって返されたオブジェクトには、私が見つけたmongoose.connect()のと同様のメソッドがありませcollectionNames()ん。

于 2011-07-31T16:44:55.750 に答える
0

mongoose.connection.collections私はマングースについて何も知りませんが、このページは、すべてのコレクションにアクセスするために使用できることを示唆しています: http://mongoosejs.com/docs/api.html

各コレクションにも name 属性が必要です。

于 2011-07-31T15:18:00.300 に答える
0

これを試して:

mongoose.connection.db.collectionNames(function (err, names) {

});
于 2014-07-13T16:15:29.657 に答える