是否有某种方式,如果我想从具有某些约束的数据库中读取一些数据,而不是等待一次获得所有结果,数据库可以开始“流式传输”它的结果给我。想一个大清单。我不想让用户等待整个列表,而是想快速开始填充数据,即使我一次只能得到一行。
我只知道带有limit(x) 和skip(y) 的MongoDB。
有什么方法可以从任何数据库获取流式传输结果?我想知道出于好奇,以及我目前正在考虑的一个项目。
是否有某种方式,如果我想从具有某些约束的数据库中读取一些数据,而不是等待一次获得所有结果,数据库可以开始“流式传输”它的结果给我。想一个大清单。我不想让用户等待整个列表,而是想快速开始填充数据,即使我一次只能得到一行。
我只知道带有limit(x) 和skip(y) 的MongoDB。
有什么方法可以从任何数据库获取流式传输结果?我想知道出于好奇,以及我目前正在考虑的一个项目。
所有标准的 MongoDB 驱动程序都会在查询时返回一个游标(find() 命令),这允许您的应用程序通过使用游标来按需拉回结果来流式传输文档。我会查看有关您计划使用的特定驱动程序的游标文档,因为不同编程语言的语法不同。
还有一种特殊类型的光标特定于某些流用例。MongoDB 有一个“Tailable Cursor”的概念,当文档被插入到集合中时,它会将文档流式传输到客户端(另见 AWAIT_DATA 选项)。请注意,Tailable 游标仅适用于“上限集合”,因为它们已针对这种特殊用途进行了优化。文档可以在 www.mongodb.org 网站上找到。以下是可尾游标的一些代码示例的链接:
http://docs.mongodb.org/manual/tutorial/create-tailable-cursor/
这是 python 连接到 mongodb 并逐行获取数据的示例
from pymongo import MongoClient
client = MongoClient()
db = client.blog
col = db.posts
for r in col.find():
print r
raw_input("press any key to continue...")