我正在尝试将一个大型结果集从 Mongo 数据库发送给 Koa 应用程序的用户(使用 Mongoose)。
我最初有类似的东西:
var res = yield Model.find().limit(500).exec();
this.body = {data: res};
但是,发送的结果集的大小导致应用程序超时,因此我想流式传输来自数据库的响应。
使用 Mongoose,您可以通过执行以下操作将查询结果转换为流:
var stream = Model.find().limit(300).stream();
但是,我不确定如何在保留所需格式的同时将此流写入响应。我希望发生这样的事情:
this.body.write("{data: "});
this.body.write(stream);
this.body.write("}");
但我知道 Koa 中没有 body.write ,而且我确定我也没有正确使用流。有人可以指出我正确的方向吗?