Mongoid仅插入值与默认值不同的字段

时间:2011-07-27 17:44:48

标签: ruby mongoid mongodb

我在项目中有一个管理页面,我决定更改大部分字段的名称。所以我更改了模型以反映更改,并尝试通过命令行将新字段设置为等于旧字段。我无法弄清楚如何做到这一点,所以我基本上在我的管理页面中添加了新字段,并手动设置了值(我知道hackish)。

所以让我们说两个新字段是:

field :foo, default: 0
field :bar, default: 9  

一切似乎工作正常,当我在管理员中设置foo和bar时,他们的值被保存了。但我注意到我无法查询这些值,就好像它们并没有真正保存在我的数据库中一样。所以我看了MongoHub,确实他们不在那里。所以我做了一些谷歌搜索,看到我需要保存我的更新。

所以更新的代码现在看起来像:

if @stat_definition.update_attributes(params[:stat_definition])
    @stat_definition.save
    [other stuff]

现在任何设置为默认值以外的字段都会被保存,但任何默认保留的字段都不会保存。如何保存这些默认值?

将foo设置为字段old_foo并将其设置为old_bar的值会是什么样的?

1 个答案:

答案 0 :(得分:0)

看起来我需要像这样运行一些查询来设置默认值:

t.update( { x : { $exists : false } }, { $set : { x : 77 } }, false, true