2013-05-03 5 views
2

pongongo를 사용하여 MongoDB에서 데이터를 삽입 및 검색합니다. 이 두 작업은 동시에 수행 될 수 있습니다. 질문은 pymongo에서 rows = db.<collection>.find()을 수행 할 때마다 rows.count()이 다른 응답을 반환 할 때마다입니다 (데이터 삽입이 동시에 수행되기 때문에). find() 문을 실행할 때 존재했던 행만 반환하도록 MongoDB를 제한 할 수있는 방법이 있습니까? 을 find()에 추가하려고 시도했지만 문제가 지속됩니다.MongoDB 스냅 샷

+0

스냅 샷 추가 = True 나를 사용했습니다. find()를 수행 한 후 커서가 생겼다가 count()를 저장하고 각 반복마다 새 문서를 삽입하는 커서를 반복 한 다음이 작업이 끝나면 같은 커서에서 다른 count()를 수행하여 동일하다는 것을 확인했습니다. 첫 번째 저장된 count(). 또한 스냅 샷은 update()가 반복되는 문서의 수를 변경하지 못하도록 수정합니다. https://groups.google.com/forum/#!topic/mongodb-user/0bCEb7vcUvg를 참조하십시오. – fthinker

답변

1

db.<collection>.find().count() 어쨌든 mongodb를 (runCommandcount) 추가로 호출합니다.

방법은 간단하게 다음과 같이 커서의 길이를 복용에 대해 : 당신은 그냥 len(rows)을 사용할 수 없습니다

rows = db.<collection>.find() 
print len(list(rows)) 

참고.

희망이 있습니다.