1

在用户手册中我可以看到更新 $set 的行为

如果该字段不存在,$set 将添加一个具有指定值的新字段,前提是新字段不违反类型约束。如果为不存在的字段指定虚线路径,$set 将根据需要创建嵌入文档以实现字段的虚线路径。

如果您指定多个字段值对,$set 将更新或创建每个字段。

我正在执行以下

db.cachedNodeChassis.update(
{
         "deviceIp":"10.115.75.77",
          "chassis.ports.1/1/x10.portId":"1/1/x13"
},
{ 
  "$set": { "chassis.ports.1/1/x13.healthState" : "Red" }
}
)

o / p:WriteResult({“nMatched”:1,“nUpserted”:0,“nModified”:0})

我希望这应该在端口嵌入文档中创建 healthState 列,有人可以澄清一下。

4

0 回答 0