MongoDB update inside array of object of array of object



测试数据:

professor:{
name:"temp1",
department:[
{name:"pro1",
review:[
{paper:"paper1",status:"review",paperid:"1"}
]}]}

我想更新状态"review"finish"帮助"。对于搜索我使用:

{
department: {
$elemMatch: {
review: {
$elemMatch: {
paperid: id
}
}
}
}}

如果您想更新状态为review的所有文档,请使用:

db.collection.update(
{},
{$set: {"professor.department.$[].review.$[r].status": "finish"}},
{arrayFilters: [{"r.status": "review"}]}
)

看看它在操场的例子中是如何工作的

如果您只想更新department.namepro1的地方,请使用:

db.collection.update(
{},
{$set: {"professor.department.$[d].review.$[r].status": "finish"}},
{arrayFilters: [{"d.name": "pro1"}, {"r.status": "review"}]}
)

看看它是如何在操场的例子中工作的- department

by specify paperid

db.collection.updateOne(
{},
{
$set: { "professor.department.$[].review.$[r].status": 'finish' }
},
{
arrayFilters: [{ "r.paperid": '1' }]
}
)

相关内容

最新更新