나는 매일 많은 양의 문서 (업데이트)를받습니다. 내가하고 싶은 것은 아직 존재하지 않는 각 항목을 삽입하는 것입니다.
- 또한 처음 삽입 한 내용과 마지막으로 업데이트 한 내용을 확인하고 싶습니다.
- 중복 된 문서를 갖고 싶지 않습니다.
- 이전에 저장되었지만 내 업데이트에없는 문서를 제거하고 싶지 않습니다.
- 기록의 95 % (추정치)는 매일 수정되지 않습니다.
Python 드라이버 (pymongo)를 사용하고 있습니다.
내가 현재하는 일은 (의사 코드)입니다.
for each document in update:
existing_document = collection.find_one(document)
if not existing_document:
document['insertion_date'] = now
else:
document = existing_document
document['last_update_date'] = now
my_collection.save(document)
내 문제는 매우 느리다는 것입니다 (100000 개 미만의 레코드의 경우 40 분이며 업데이트에 수백만 개가 있습니다). 나는 이것을하기 위해 내장 된 것이 있다고 확신하지만 update ()에 대한 문서는 mmmhhh .... 조금 간결합니다 .... ( http://www.mongodb.org/display/DOCS/Updating )
누군가가 더 빨리하는 방법을 조언 할 수 있습니까?