「MongoDBの手引き」第2章-更新
updateコマンドでコレクションを更新できる。
・第一引数は更新対象を検索するセレクタ。
・第二引数に更新するフィールドと値を指定する。
第二引数の指定に注意点がある。
[例]
サンプルデータ。
{ "_id" : ObjectId("5f2ac90849205524baca9c39"),
"weight" : 590,
"dob" : ISODate("1979-08-18T09:44:00Z"),
"gender" : "m",
"loves" : [ "apple" ],
"name" : "Roooooodles",
"vampires" : 99 }
[誤ったupdate]
db.unicorns.update({name: 'Roooooodles'},
{weight: 590})
このupdateを実行すると、
weightのみを更新するのではなくdocument全体を上書きするような更新をしてしまう。
[結果]
{ "_id" : ObjectId("5f2ac90849205524baca9c39"),
"weight" : 590 }
[正しいupdate]
$setを記述する。
db.unicorns.update({name: 'Roooooodles'},
{$set: {weight: 777}})
[結果]
{ "_id" : ObjectId("5f2ac90849205524baca9c39"), "weight" : 777, "dob" : ISODate("1979-08-18T09:44:00Z"), "gender" : "m", "loves" : [ "apple" ], "name" : "Roooooodles", "vampires" : 99 }
意図通り、weightのみを更新できた。
https://github.com/Makopo/the-little-mongodb-book/blob/master/ja/mongodb.markdown#%E6%9B%B4%E6%96%B0-%E7%BD%AE%E6%8F%9B-%E5%AF%BE-set