更新mongoid中包含哈希的数组字段

时间:2015-04-17 16:02:23

标签: ruby-on-rails mongodb ruby-on-rails-4 mongoid

我在XYZ集合中有一份文件如下。

"_id" : ObjectId("55311e4487216d7063040000"),
"colours" : [
    {
         "value" : 1,
         "colour" : "red"
    },
    {
         "value" : 2,
         "colour" : "green"
    }
]

我需要更新值为1的颜色名称。我应该写什么查询?

我使用的是rails 4.1.2,mongoid 4.0.0。

请帮忙。

1 个答案:

答案 0 :(得分:7)

例如,您想将其更改为“黄色”:

XYZ.where(_id: "55311e4487216d7063040000").elem_match(colours: { value: 1 }).update("$set" => {"colours.$.colour" => "yellow"})