重複するデータを検索するには MongoDB でどのようにしたらいいですか。
重複データを照会するには、MongoDB の集約フレームワークと集約パイプライン演算子を利用できます。
以下は考えられる解決策です。
- 検査するフィールドでグループ化するために$group演算子を利用する。
- $match演算子を使用して重複するグループをフィルタします。
- プロジェクト演算子を使って表示するフィールドを選択します。
例えば、コレクション「collection」があり、fieldという名前のフィールドに重複した値がある場合は、次のコードで調べられます。
db.collection.aggregate([
{
$group: {
_id: "$field",
count: { $sum: 1 },
duplicates: { $push: "$_id" }
}
},
{
$match: {
count: { $gt: 1 }
}
},
{
$project: {
_id: 0,
field: "$_id",
count: 1,
duplicates: 1
}
}
])
重複するデータを含む配列が返され、各要素には重複するフィールドの値、重複の件数、重複するデータを格納するドキュメントの ID の配列が含まれます。
これが唯一の方法ではないことにご注意ください。必要に合わせて調整や拡張を行うことができます。