有一个文件
{
id: 10,
orders: [
{
id: 1
name: order1,
files: [
{id: 1, name: file1}
]
},
{
id: 2
name: order2,
files: [
{id: 1, name: file1},
{id: 2, name: file2}
]
}
]
}
您需要更改文件id:1,请求id:2中“name”的值。您只需要更改名称值而不覆盖文件或请求的对象,甚至整个文档。毕竟,如果另一个用户在文档或订单 id: 2 中进行了 2 次更改,那么我的更新将覆盖它们。
如何解决这个问题呢?
db.collection.updateOne({id:10}, {$set:{'orders.1.files.0.name': 'qwerty'}})