我必須在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