2013-05-03 148 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)

希望有所幫助。