주어진 필드의 모든 복제본을 찾고자하는 컬렉션이 있습니다. Mongo 문서 및 기타 답변에서 대부분의 사람들은 mapReduce를 제안하는 것 같습니다. 필자는 map reduce를 사용하는 대신 파이썬에서 커서를 반복하는 것의 단점이 무엇인지 궁금해했다.MongoDB : 중복 필드 계산, mapReduce 대 파이썬 루프
mapreduce도 마찬가지입니다. 어쨌든 개체를 반복해야합니다.
누군가를 도울 수 있도록 여기에 해결책을 추가하십시오.
다음 쿼리를 실행하여 두 번 이상 존재하는 모든 바코드의 목록을 가져 왔습니다. $group
파이프는 발생 횟수를 계산하고 $match
은 count
이 1
보다 큰 항목을 필터링합니다.
db.sandbox.aggregate([
{$group: {_id: '$barcode',
count: {$sum: 1}
}
},
{$match: {count: {$gt:1} } }
])
이렇게 집계 할 수 있습니다. – user10