5

mongoosejs odm のドキュメントを調べたところ、次のことがわかりました: http://mongoosejs.com/docs/querystream.html

それらは何に使用されますか?どうすればいいですか。

それらがドキュメントのストリーミングに使用されているのか、クエリの動的更新に使用されているのかはわかりません...

よろしく

4

1 に答える 1

6

まあ、それはすべてAPIに関するものです。

QueryStreamReadStreamではの APIを使用できるため、理解するには/QueryStreamについて詳しく知る必要があります。ReadStreamWriteStream

多くの長所があります:

  • 「チャンク」として取得される大量のデータを処理できるため、メモリには一度に1つのアイテムが含まれます(DBドキュメント、DB行、ファイルからの1行など)。
  • ストリームを一時停止/再開できます
  • read->write を非常に簡単にパイプできます

アイデアは、読み取り操作と書き込み操作のための統一された APIを提供することです。

「どうすればいいですか?」という質問に答えるには、次のようにします。

node.js のストリーム API を使用してもしなくても何でもできますが、何らかの標準がある場合は、より明確で使いやすくなります。

また、node.js のストリームはイベントベース (EventEmitter に基づく) であるため、デカップリングに役立ちます。


編集:

それはストリームの側面に関するものでした。Mongoose の場合、1 つのチャンクにドキュメントが含まれます。

API の利点を明確にするには:

node.jsは書き込み可能なストリームです。つまり、次の 1 行を使用して、の結果セットをブラウザhttp.ServerResponseにストリーミングできるはずです。Mongoose

// 'res' is the http response from your route's callback.
Posts.find().stream().pipe(res); 

http.ServerResponseポイントは、書き込み先が 、ファイル、またはその他のものであるかどうかは問題ではないということです。書き込み可能なストリームを実装している限り、変更なしで動作するはずです。


私がそれをより明確にしたことを願っています。

于 2012-07-20T02:48:00.367 に答える