MongoDB v2.6以降は{$set: {}}でupdateするとエラーになる
[SERVER-12266] Update no longer allows empty modifier objects - MongoDB Jira
によれば、v2.5から、$set
や$unset
にからオブジェクトを渡すとエラーになるよう、挙動を変更したそう。
> db.foo.update({_id:1}, {$set: {}}, true); db.getLastErrorObj(); { "err" : "'$set' is empty. You must specify a field like so: {$mod: {<field>: ...}}", "code" : 16840, "n" : 0, "connectionId" : 2, "ok" : 1 }
というエラーが。
v2.4以前使っているような、古いプロジェクトだと結構困るんじゃないでしょうか。