MongoDBで2つのフィールドに基づいて重複を排除する方法
MongoDBでは、$group演算子と$addToSet演算子を用いることにより、2つのフィールドで重複排除できます。
collectionという2つのフィールド、field1とfield2を持つコレクションがあったとします。次のアグリゲーションパイプライン操作を使用して、2つのフィールドに基づいて重複を取り除くことができます。
db.collection.aggregate([
{
$group: {
_id: { field1: "$field1", field2: "$field2" },
uniqueIds: { $addToSet: "$_id" }
}
},
{
$project: {
_id: 0,
field1: "$_id.field1",
field2: "$_id.field2"
}
}
])
このアグリゲーションパイプライン操作では、はじめに文書を field1 と field2 でグループ化し、それから $addToSet 演算子を使用して、各グループ内のユニークな _id を uniqueIds 配列に追加します。
最後に、$project演算子を使って_idフィールドを削除してから、_id.field1と_id.field2を、それぞれfield1、field2という名前に変更します。
それにより、2つのフィールドに基づいて重複を削除した結果が得られる。