有没有办法从数据库中获取流式读取?

时间:2013-07-20 18:49:05

标签: mongodb web-services database

如果我想从数据库中读取一些具有某些约束的数据,而不是等待一次获得所有结果,那么数据库可以启动"流式传输"它给我的结果。 想想一个大清单。 我没有让用户等待整个列表,而是希望快速填充数据,即使我一次只获得一行。

我只知道带有限制(x)和跳过(y)的MongoDB。

从任何数据库获取流式传输结果的任何方法?我想知道好奇心,以及我正在考虑的项目。

2 个答案:

答案 0 :(得分:0)

这里是与mongodb的python连接和逐行获取数据的示例

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...")

答案 1 :(得分:0)

所有标准的MongoDB驱动程序都会在查询(find()命令)上返回一个游标,它允许应用程序使用游标按需提取结果来传输文档。我会查看有关您计划使用的特定驱动程序的游标文档,因为不同编程语言之间的语法不同。

还有一种特殊类型的游标,专门用于某些流媒体用例。 MongoDB有一个" Tailable Cursor的概念,"当文档插入集合时,它会将文档流式传输到客户端(另请参阅AWAIT_DATA选项)。请注意,Tailable游标仅适用于" capped collections"因为他们已经针对这种特殊用途进行了优化。文档可以在www.mongodb.org网站上找到。下面是tailable游标的一些代码示例的链接:

http://docs.mongodb.org/manual/tutorial/create-tailable-cursor/