Mongoose.js:什么是QueryStreams

我查看了mongoosejs odm的文档,发现如下: http : //mongoosejs.com/docs/querystream.html

他们用于什么? 我能和他们做什么?

我不知道他们是否用于stream文档或dynamic更新查询…

问候

那么,这一切都是关于API。

QueryStream允许使用ReadStream的API,所以为了体会QueryStream ,您需要了解更多关于ReadStream / WriteStream

有很多优点:

  • 你可以处理大量的数据,你会得到“块”,所以内存一次只能包含一个项目(可能是DB文档,DB行,文件中的单行等)
  • 您可以暂停/恢复stream(s)
  • 你可以pipe读 – >写非常容易

这个想法是它给你一个统一的API读写操作。

回答你的问题:“我能做些什么”:

无论有没有node.js的streamAPI,你都可以做任何事情,但是当有某种标准的时候,它肯定会使它更清晰和更易于使用。

此外,node.js的stream是基于事件(基于EventEmitter),所以它有助于解耦。


编辑:

这更多的是关于stream的方面。 在Mongoose的情况下,一个块包含一个文件。

澄清API的优点:

node.js的http.ServerResponse是一个可写的stream,这意味着你应该能够使用一行来将Mongoose的结果集stream到浏览器:

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

问题是,如果你正在写http.ServerResponse ,一个文件或其他东西,这并不重要。 只要它实现了一个可写的stream,它应该没有改变。


希望我说得更清楚。