MongoDB更新和$设置覆盖文档



假设我有一个文档为;

{
  id: 1,
  name: alex, 
  age: 39,
  surname: felix
  address: [
   { 
     type: "home"
     street: "blabla"
   }
  ]
}

当我编写查询时;

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

它将文档更改为;

{
  id: 1,
  adress: [
      street: test
  ]
}

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

如何使用mongodb中的CC_1中的文档部分部分编辑?

您可以尝试此

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

从文档中阅读更多

可以使用位置$ operator

在数组中更新数组中的位置更新项目
db.collection.update( 
    {id: 1 , adress.type: "home"}, 
    { $set: { "adress.$.street": "test" } }
)

!请注意,这仅在找到一(1)个子文档

时起作用。

最新更新