我必须在MongoDB中插入记录。我用了一个简单的逻辑,但没有奏效。请帮我解决这个问题。Mongo DB,Python:每插入10000条记录都会插入。
from pymongo import MongoClient
import json
import sys
import os
client = MongoClient('localhost', 9000)
db1 = client['Com_Crawl']
collection1 = db1['All']
posts1 = collection1.posts
ll=[]
f=file(sys.argv[1],'r')
for i in f:
j=json.loads(i)
ll.append(j)
#print ll
print len(ll)
count = 0
for l in ll:
count = count+1
if count <= 10000:
print count,l
print posts1.update({'vtid':l},{'$set': {'processed': 0}},upsert = True,multi = True)
print "**** Success ***"
该文件包含1000万条记录。上面的代码插入了一个新列,并将它的值更新为“0”以记录10000条记录。但是如何能够在每批执行10000个批处理中记录其余的记录。
不确定批处理部分,但此循环仅在'count <= 10000'时挂起,且计数从不重置。所以一旦你打10000个记录,upsert不会再发生。 – ktbiz
是的..但是我怎样才能重置下一组值的计数。 – NiviSRa
您可能只想以10000为单位递增,并在每个步骤插入一片“ll”。使用'range'而不是遍历每个元素。 – ktbiz