sdb的更新语法请参考:update(),当更新的目标为嵌套对象时如何做呢?
① 嵌套对象,记录如下:
> db.company.depart.find();
...
{
"_id": {
"$oid": "5e8de5496bd1dfddbaf171ba"
},
"people": [
{
"name": "hanmeimei",
"age": 22,
"id": 1
},
{
"age": 23,
"id": 2,
"name": "lilei"
}
]
}
...
若想将'lilei'的年龄更新为24,可以参考命令:
// 注意字段两边的引号不能少
db.company.depart.update({$set:{'people.$1.age':24}},{'people.$1.name':'lilei'});
② 嵌套数组对象,记录如下:
> db.company.employee.find();
...
{
"_id": {
"$oid": "5e8deb6a832bcdd7bcdcf1c2"
},
"name": "Tom",
"addr": [
"Beijing",
"Tianjin"
]
}
...
若想将Tom的addr数组对象的第二个元素'Tianjin'更新为'Shanghai',可以参考命令:
// 注意字段两边的引号不能少
db.company.employee.update({$set:{'addr.1':'Shanghai'}}, {name:'Tom'});