Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MongoDB中更新完整的嵌入式文档_Mongodb - Fatal编程技术网

在MongoDB中更新完整的嵌入式文档

在MongoDB中更新完整的嵌入式文档,mongodb,Mongodb,我是mongoDB的新手,我被困在一个简单的更新操作中: 以下是我存储的文档: { "_id" : "xyz", "basicinfo_showcase_components" : { "display_name" : "ritesh", "display_email" : "xyz@gmail.comxsa", "international_phone_number" : "+91 .....", }, "address_components" : {

我是mongoDB的新手,我被困在一个简单的更新操作中:

以下是我存储的文档:

{
  "_id" : "xyz",
  "basicinfo_showcase_components" : {
    "display_name" : "ritesh",
    "display_email" : "xyz@gmail.comxsa",
    "international_phone_number" : "+91 .....",
  },
  "address_components" : {
    "country" : "India",
    "postal_code" : "500004",
    "state" : "Telangana",
    "city" : "Hyderabad",
    "subLocality1" : "aaaa",
    "subLocality2" : "",
    "subLocality3" : "",
    "route" : "",
    "geometry" : {
      "lat" : 17.43143576387407,
      "lng" : 78.464432457672046
    },
    "formatted_address" : "addrr"
  }
}
现在我想更新上述文档中的地址\组件:

我试过:

db.portfolio.update({ "_id" : "xyz", "$isolated" : "true" },
{

   "address_components" : {
    "country" : "Nepal",
    "postal_code" : "878799",
    "state" : "Telangana",
     "city" : "Kathmandu",
     "subLocality1" : "xyz",
     "subLocality2" : "",
     "subLocality3" : "",
     "route" : "",
     "geometry" : {
         "lat" : 17.43143576387407,
        "lng" : 78.464432457672046
      },
         "formatted_address" : "kath..."
      }

});
但在更新后,“basicinfo_showcase_组件”被删除

即,更新后的文档为:

{
  "_id" : "ohris",
 "address_components" : {
   .......
  }
}

您能指出错误吗?

在更新查询中,您将整个文档作为更新文档传递,如果您只想更新文档的一个(或多个)字段,则应使用
$set
运算符:

db.test.update({ "_id" : "xyz", "$isolated" : "true" },
{
   $set : {
   "address_components" : {
    "country" : "Nepal",
    "postal_code" : "878799",
    "state" : "Telangana",
     "city" : "Kathmandu",
     "subLocality1" : "xyz",
     "subLocality2" : "",
     "subLocality3" : "",
     "route" : "",
     "geometry" : {
         "lat" : 17.43143576387407,
        "lng" : 78.464432457672046
      },
         "formatted_address" : "kath..."
      }    
}});

您的文档id是xyz,但在更新查询中您正在搜索id:ohris?我的错!!愚蠢的我!!错过$set操作。那是个错误(.谢谢,你的解决方案成功了!!