DBに入力した値をxxx以上の値の場合はそのままでそれ以下だったら2倍にしたいとか、そういう処理をしたい場合は書き捨てスクリプトを書いたりする事がありますが
mongoだったらjavascript風の呪文でdbと対話してupdateできるよというお話
あらすじ
とあるゲームを開発したけどユーザーに付与するお金が少なすぎたので
やっぱりもっとお金を付与しましょうみたいなケースがあったと仮定すると次の様にupdateできます。
やってみる
接続する
% mongo MongoDB shell version: 2.0.2 connecting to: test
テストデータを保存する
for (var i = 0; i < 1000; i ++) { db.User.save({_id:i, money: 100}); }
確認する
db.User.count({money:100}) 1000
updateする
db.User.find().forEach(function(data) { db.User.update({ "_id": data._id }, { $set: {"money": data.money * 10 } }); });
確認する
db.User.count({money:1000}) 1000
終わったら掃除
db.User.drop()
if分とかで条件分岐したりとか色々できるよ。おしまい