當我掃描mongodb並編輯所有的項目時,我得到了這個問題:掃描計數器我可以比cursor.count()大。這是爲什麼發生?任何人都能想出來嗎?是mongodb的cursor.count()的實際計數?
db.baiduwords.find()。COUNT()= 805280
db.baiduwords.find()。大小()= 805280
,但我去1498400或以上。
import pymongo
if __name__=='__main__':
client = pymongo.MongoClient()
i = 0
collection = client.baike.baiduwords.find()
for item in collection:
i += 1
MajorClass = []
for cl in item['C']:
c = cl
while(1):
a = client.baike.baiduclass.find({'s':c})
if a.count():
a = a[0]
if a['f'] == u'Root':
MajorClass.append(c)
break
else:
c = a['f']
else:
break
item['MC'] = list(set(MajorClass))
client.baike.baiduwords.save(item)
if i%100 == 0:
print "%d/%d"%(i, collection.count())
PS:printShardingStatus:這個db沒有啓用分片。
這是一個分片收集? – 2013-04-24 13:12:21
我不知道。但我從來沒有將其配置爲分片。 – 2013-04-24 13:36:10
如果在這裏使用'size()'而不是'count()'會怎麼樣? – alecxe 2013-04-24 13:43:05