MongoDBで複数のデータをマージする方法
MongoDB では $merge オペレータを使用して複数のデータを 1 つの集合にマージできます。$merge オペレータはアグリゲーションパイプラインで使用され、元データをターゲットコレクションにマージして、必要に応じてターゲット コレクション内のドキュメントを更新または置き換えます。
多重データを $merge 操作でまとめる例を次に示します。
db.sourceCollection.aggregate([
// 聚合管道操作
// ...
{
$merge: {
into: "targetCollection", // 目标集合的名称
on: "_id", // 匹配条件,此示例中使用 _id 进行匹配
whenMatched: "merge", // 当有匹配的文档时,合并源数据和目标文档
whenNotMatched: "insert" // 当没有匹配的文档时,直接插入源数据到目标集合
}
}
])
上記の例では、sourceCollectionがマージする元のコレクションで、targetCollectionがマージ先のターゲットコレクションです。$merge演算子を使用して、ソースデータをターゲットコレクションにマージし、_idをマッチング条件としてマッチングを行い、ドキュメントがマッチングした場合にはソースデータとターゲットドキュメントをマージし、マッチングしない場合はソースデータをそのままターゲットコレクションに挿入します。
$merge オペレータによるマージ操作は対象コレクションが存在済みで、現在ユーザがマージ操作を行うのに十分な権限があることを確認する必要があります。