我在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,这是一种方法。请帮助!!
答案 0 :(得分:0)
您只需指定要更新的值的路径:
'$set' => { 'ad_details.Url' => params['urls'][idx], ... }