MongoDBで一括更新を実行する方法を教えてください。
MongoDBでデータをまとめて更新する際、よく使う方法はupdateManyメソッドです。これは与えられた条件に一致する複数のドキュメントを一括で更新することができるメソッドです。
文法通りでネイティブな日本語への言い換えは次のとおりです。
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>
}
)
ここで、collection はコレクション名であり、filter は文書更新の対象指定に利用されるクエリ条件で、update は更新内容の操作で、upsert はオプションのパラメータであり、true に設定すると条件を満たす文書がなければ新規に文書が挿入されることを意味します。
以下に例を示します。
usersというコレクションがあって、ユーザーのドキュメントがいくつかあり、「年齢が30歳以上」のユーザーの状態を「承認済み」に設定したい場合
db.users.updateMany(
{ age: { $gt: 30 } },
{ $set: { status: "已审核" } }
)
上記の例では、$gtは「より大きい」、$set は更新演算子で、ドキュメントのstatusフィールドを「承認済み」に設定します。
アップデートを実行するドキュメントは、条件に一致するすべてのドキュメントであることに注意してください。条件に一致する最初のドキュメントのみを更新する場合は、updateOneメソッドを使用できます。