当更新数据是空哈希

时间:2016-01-17 16:07:58

标签: ruby-on-rails ruby mongodb

在ruby版本2.2.0,MongoDB版本3.0.5,

上使用Ruby-on-Rails时

当更新数据为空哈希时,尝试执行包含更新和增量的更新查询时,我遇到了一种奇怪的行为:

运行命令时:

(1)db.collection.update({'user_id' => 123456}, {'$set' => {}, '$inc' => { 'counter' => 1 }}, {:upsert => true})

字段counter的值保持原样(无变化)。

运行命令时:

(2)db.collection.update({'user_id' => 123456}, {'$inc' => { 'counter' => 1 }}, {:upsert => true})

字段counter的值按预期增加1。

有人可以向我解释为什么命令(1)的结果与命令(2)不同?

1 个答案:

答案 0 :(得分:1)

db.collection.update({'user_id' => 123456}, {'$set' => {}, '$inc' => { 'counter' => 1 }}, {:upsert => true})

输出'$set' is empty. You must specify a field like so: {$mod: {<field>: ...}}例外

这可能是您的计数器没有递增的原因。

你使用的是哪个版本的mongodb是2.6