node.jsサーバーで、mongodbネイティブドライバーを使用して、カーソルからレコードを取得し、それらをJSONとして出力したいと思います。私はこれを持っています(簡略化)
var ans = {ids: []};
cursor.each(function(err, doc) {
if (doc) {
ans.ids.push(doc.tag);
}
});
cursor.count(function(err, result) {
ans.count = result;
res.send(JSON.stringify(ans));
});
結果は次のようになり{ids:[], count: 3}
ます。つまり、クエリはレコードを返さずに実行されているように見えます。これは、コールバックが実行される前にデータがすでに送信されているためだと思いcursor.each
ます。これを再構築して、反復後に送信が確実に行われるようにするにはどうすればよいですか?