MongoDB 데이터베이스를 구축 중이며 중복 된 항목을 피하기 위해 문제가 있습니다. 순간 나는 (유일한 항목이 존재하지 않는 경우 확인 후 삽입 문서)이 일을 해요 :MongoDB에 레코드가 있는지 확인하십시오.
from pymongo import Connection
import pandas as pd
from time import strftime
from collections import OrderedDict
connection = Connection()
db = connection.mydb
collection = db.mycollection
data = pd.read_csv("data/myfile.csv", parse_dates=[2,5])
for i in range(len(data)):
if(collection.find({ "id": data.ix[0], \
"date1": data.ix[i, 2].strftime("%Y-%m-%d"), \
"date2": data.ix[i, 5].strftime("%Y-%m-%d"), \
"number": int(data.ix[i, 6]), \
"type": data.ix[i, 7]}).count() == 0):
collection.insert(here goes what I'd like to insert)
잘 작동 않는, 그러나 이것은 이미 상당한 성능 문제가 (함께 단지 ~ 100MB의 데이터) find()
을 할 때마다 매번 느리게 진행되는 것으로 보입니다.
속도를 높이는 방법이 있습니까? 어쩌면 내가 근본적으로 잘못하고있는 것일까? 모든 필드가 아닌 특정 필드 집합에서만 중복을 피할 필요가 있습니다 (즉, 숫자 2도 있습니다. 다른 숫자도 가능하지만 다른 모든 필드가 일치하는 경우에도 여전히 복사 할 수 있습니다).
: 아래 는 같을 것이다 방법입니다! –