mongodb update 和 $set 覆盖文档

mmu*_*478 2 edit mongodb node.js

假设我有一个文件;

{
  id: 1,
  name: alex, 
  age: 39,
  surname: felix
  address: [
   { 
     type: "home"
     street: "blabla"
   }
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我将查询写为;

db.collection.update({id: 1 , adress.type: "home"} ,  { $set : {adress: { street: "test"}});
Run Code Online (Sandbox Code Playgroud)

它将文档更改为;

{
  id: 1,
  adress: [
      street: test
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是我只想设置文档的一部分,只想更改街道名称但此查询会覆盖文档。

我怎样才能在编辑文档的一部分的区域mongodbupdate

Jyo*_*aja 5

你可以试试这个

db.collection.update( 
  { id: 1, "address.type" : "home" } , 
  {$set : {"address.$.street" : "test"}}
);
Run Code Online (Sandbox Code Playgroud)

文档中阅读更多内容