0

MongoDB コレクションから取得したすべての行の数を取得する方法を知りたいです。

var collection = db.collection( _collection ).find();

今のところ、コレクションから取得する行数を追跡する必要がある場合、そこにソムティングがあるかどうかはわかりません。

Stream関数を使用して「データ」をwidtoutから取り出すためのより良い方法はありますか?

var stream = collection.find().stream();            
stream.on("data", function(item)
{
    console.log(item.zipcode);
});

stream.on("end", function()
{
});

どうすれば一種の助けを得ることができますか、:)

4

1 に答える 1

3

私はNode.JSドライバーをまったく使用していませんが、ドキュメントを見るとCollection()、カウント機能があるようです:

// Assuming DB has an open connection...
db.collection("my_collection", function(err, collection) {
    collection.count(function(err, count)) {
        // Assuming no errors, 'count' should have your answer
    }
});

それはまったく役に立ちますか?

あなたの質問の 2 番目の部分については、あなたが何を求めているのか完全にはわかりませんが、データを取得する方法がいくつかあります。

関数を使用してtoArray()すべてのドキュメントの配列を取得します ( docs を参照):

collection.find().toArray(function(err, docs) {
    // 'docs' should contain an array of all your documents
    // 'docs.length' will give you the length of the array (how many docs)
});

関数を使用each()して結果をループし、それぞれに対して指定された関数を実行します ( docs を参照)。

collection.find().each(function(err, doc) {
    // this function will be executed once per document

    console.log(doc.zipcode)
});

それがあなたを助けることを願っています。

于 2013-08-02T16:13:07.663 に答える