2013-05-03 130 views
2

我正在使用pymongo从MongoDB插入和检索数据。这两个操作可以同时执行。问题是当我在pymongo中做rows = db.<collection>.find()时,每次rows.count()都返回一个不同的响应(因为插入的数据也在同一时间完成)。有什么办法可以限制MongoDB仅返回执行find()语句时出现的行吗?我尝试将snapshot=True添加到find(),但问题仍然存在。MongoDB快照

+0

添加快照= True为我工作。在find()之后我得到了一个游标,然后我存储了count(),在每次迭代时迭代游标插入新文档,然后当这个完成时,我在同一个游标上做了另一个count()并验证它是相同的作为第一个存储的计数()。令人意外的是,快照也修正了更新迭代的文档数量的update()。请参阅:https://groups.google.com/forum/#!topic/mongodb-user/0bCEb7vcUvg – fthinker 2013-10-10 16:06:58

回答

1

db.<collection>.find().count()无论如何都会调用mongodb(runCommandcount)。

如何简单地把你的光标的长度,这样的:

rows = db.<collection>.find() 
print len(list(rows)) 

请注意,你不能只用len(rows)

希望有所帮助。