2013-06-04 4 views
2

주어진 필드의 모든 복제본을 찾고자하는 컬렉션이 있습니다. Mongo 문서 및 기타 답변에서 대부분의 사람들은 mapReduce를 제안하는 것 같습니다. 필자는 map reduce를 사용하는 대신 파이썬에서 커서를 반복하는 것의 단점이 무엇인지 궁금해했다.MongoDB : 중복 필드 계산, mapReduce 대 파이썬 루프

mapreduce도 마찬가지입니다. 어쨌든 개체를 반복해야합니다.

누군가를 도울 수 있도록 여기에 해결책을 추가하십시오.

다음 쿼리를 실행하여 두 번 이상 존재하는 모든 바코드의 목록을 가져 왔습니다. $group 파이프는 발생 횟수를 계산하고 $matchcount1보다 큰 항목을 필터링합니다.

db.sandbox.aggregate([ 
         {$group: {_id: '$barcode', 
           count: {$sum: 1} 
           } 
         }, 
         {$match: {count: {$gt:1} } } 
        ]) 
+0

이렇게 집계 할 수 있습니다. – user10

답변

4

aggregation framework 중복 된 항목을 찾는 데 도움이됩니다. 레코드를 가져 와서 반복하는 것보다 낫습니다.

+0

은 집계가 무엇인지조차 알지 못했습니다. 그러나 완벽하게 일했습니다. 고마워. – xcorat

+1

나는 기쁘다 ... 그것은 당신을 도왔다 ... – user10