2013-12-16 104 views
0

我在mongodb中有一个具有以下结构的文档。mongodb ruby​​:更新嵌套文档中的字段

{ 
"_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" 
    } 
} 

我想更新的字段名称“中选择”和字段“地址”一query.Currently我可以更新所选字段而不是网址。

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

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

回答

0

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

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