Mongoose.js:什么是QueryStreams

bod*_*ser 4 javascript mongoose node.js

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

它们用于什么?我能用它做什么

我不确定它们是用于流媒体文档还是动态更新查询...

问候

sam*_*tny 5

嗯,这都是关于API的.

QueryStream允许使用ReadStream的API,以便欣赏QueryStream,你需要了解更多关于ReadStream/ WriteStream.

有很多优点:

  • 您可以处理大量数据,这些数据将作为"块"进行处理,因此内存一次只包含一个项目(可以是DB文档,数据库行,文件中的单行等)
  • 你可以暂停/恢复流
  • 您可以非常轻松地管道读取 - >写入

我们的想法是为您提供统一的读写操作API.

回答你的问题"我能用它做什么":

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

此外,node.js的流是基于事件的(基于EventEmitter),因此它有助于解耦.


编辑:

这更多的是关于流的方面.在Mongoose的情况下,单个块包含一个文档.

澄清API的优势:

node.js http.ServerResponse是一个可写流,这意味着您应该能够Mongoose使用一行将结果集流式传输到浏览器:

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

关键在于,无论是写入http.ServerResponse文件还是其他任何内容都无关紧要.只要它实现了可写流,它就可以在不做任何更改的情况下工作.


希望我说得更清楚.