mongodb ruby​​:更新嵌套文档中的字段

时间:2013-12-16 07:03:26

标签: ruby mongodb updates

我在mongodb中有一个文件,结构如下。

{
"_id" : ObjectId("52ad477a5873b710c0000007"),
"ad_name" : "name_6",
"selected" : true,
"vendor" : "facebook.com",
"status" : "VALID",
"ad_details" : {
    "Body" : "something",
    "Title" : "random_6",
    "Url" : "www.someurl.com",
    "Image" : "blob_data"
     }
}

我想在一个查询中更新字段名称“已选择”和字段“Url”。目前,我可以更新所选字段,但不能更新网址。

ads.update({"_id" => BSON::ObjectId.from_string(doc_id)},
                            {"$set"=> {"selected" => select, "Url" => params["urls"][indx]}}

此查询不会给我任何错误,但不会更新Url,因为它存在于ad_details子文档中。此外,我不想更新整个ad_details json,这是一种方法。请帮助!!

1 个答案:

答案 0 :(得分:0)

您只需指定要更新的值的路径:

'$set' => { 'ad_details.Url' => params['urls'][idx], ... }