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,它应该没有改变。
希望我说得更清楚。