如何从mongodb流式传输数据?

时间:2014-10-06 07:06:11

标签: mongodb pymongo

mongo find(),返回集合中的所有文档。我想将我在mongodb中的每个文档存储到另一个数据库中。所以,我想继续为单个新文档轮询mongodb,因为find().limit(1)会一次又一次地让我回复。我只想让mongo一个接一个地返回所有文件。可能吗?怎么办呢?

编辑: 我想将我的mongodb实例中的每个条目复制到另一个db,而不仅仅是最新的。

2 个答案:

答案 0 :(得分:1)

  1. 使用sort,默认情况下是自然类型,即:。

    查找()排序({_识别符:1})。。限制(1)

  2. 您需要存储已检索的当前文档的_id,并将其与使用相同查询检索的下一个文档进行匹配,如果它们不同,则存储文档以及新的_id。

    1. 更好地使用tailable游标: http://docs.mongodb.org/manual/tutorial/create-tailable-cursor/

答案 1 :(得分:0)

听起来菲利普(Philipp)的评论找到了您想要的答案,但可以回答原始问题:

如果您希望文档很大,我不建议对整个数据库使用排序,而且限制也会导致糟糕的性能。

运行find()操作实际上会向您返回一个游标对象,您可以对其进行迭代,该游标对象可以有效地进行流传输,因此可以精确地满足您的要求。

相关问题