特定のフィールドのすべての重複を見つけたいコレクションがあります。ここのMongoドキュメントと他の回答から、ほとんどの人はmapReduceを提案しているようです。map reduce を使用する代わりに、Python からカーソルを反復処理することの欠点は何だろうと思っていました。
いずれにしても mapreduce もオブジェクトを反復処理する必要があるようです。
ここにソリューションを追加して、誰かを助けるかもしれません。
次のクエリを実行して、複数回存在するすべてのバーコードのリストを取得しました。$group
pipe は出現回数をカウントし、以上$match
のものをフィルタリングします。count
1
db.sandbox.aggregate([
{$group: {_id: '$barcode',
count: {$sum: 1}
}
},
{$match: {count: {$gt:1} } }
])