我一直在寻找如何将 MongoDB 查询的结果流式传输到 nodejs 客户端的示例。到目前为止,我发现的所有解决方案似乎都是一次读取查询结果,然后将结果发送回服务器。
相反,我(显然)希望为查询方法提供一个回调,并让 MongoDB 在结果集的下一个 block 可用时调用它。
我一直在研究 mongoose - 我应该使用不同的驱动程序吗?
一月
最佳答案
node-mongodb-driver
(每个 mongoDB 客户端在 nodejs 中使用的底层)除了其他人提到的游标 API 有一个不错的流 API(#458)。不幸的是,我没有在其他地方找到它。
更新:there are docs .
可以这样使用:
var stream = collection.find().stream()
stream.on('error', function (err) {
console.error(err)
})
stream.on('data', function (doc) {
console.log(doc)
})
它实际上实现了 ReadableStream 接口(interface),所以它拥有所有的优点(暂停/恢复等)
https://stackoverflow.com/questions/7372626/