2016-05-27 3 views
0

私はマングース3.8を使用しています。私は100のドキュメントを取得し、コールバック関数を実行し、次に100のドキュメントを取得し、同じことをする必要があります。マングースjsバッチを見つける

私は.batchSize()と同じことをやろうと思っていましたが、一度にすべてのデータを取得しています。

limitまたはoffsetを使用する必要がありますか?はいの場合は、誰かがそれを行うための適切な例を与えることができますか?

それがbatchSizeで実行できるのであれば、それはなぜ私にとってはうまくいかないのですか?

MySchema.find({}).batchSize(20).exec(function(err,docs) 
{ 
    console.log(docs.length) 
}); 

私は毎回20枚印刷すると思っていましたが、印刷枚数はそれだけでした。

答えて

0

このlinkには、必要な情報があります。 あなたは、nは、あなたは、クライアントが受信したいページ番号でリクエストに受信パラメータである

var pagesize=100; 
MySchema.find().skip(pagesize*(n-1)).limit(pagesize); 

これを行うことができます。

+0

いいえ、私はページングを必要といけない、私は文句を言わない、ページ番号の情報を持っています。私がしたいことは、データを部分ごとに読み込み、処理し続けることだけです。たくさんのレコードがあると、処理が重すぎる。 –

1

Docsは言う:MongoDBのは、単一のバッチを返したかのようにモンゴシェルと、ほとんどのドライバーが結果を返すよう

ほとんどの場合、バッチサイズを変更すると、ユーザーまたはアプリケーションには影響しません。

あなたはstreamsを見て、おそらくsubresultsを蓄積しようとすることもできます。

var stream = Dummy.find({}).stream(); 
stream.on('data', function (dummy) { 
    callback(dummy); 
}) 
関連する問題