我试图从三重嵌套数组中删除一个属性,但没有成功。这是我要删除的数据的示例:
Controls: [
{
Name: 'ControlNumberOne',
Submit: {
Executes: [
{
Name: 'execute',
Type: 0
},
{
Name: 'anotherExecute',
Type: 0
}
]
}
},
{
Name: 'ControlNumberTwo',
Submit: {
Executes: [
{
Name: 'anotherFromAnotherControl',
Type: 1
}
]
}
}
]
我尝试了以下更新查询,但没有一个有效:
db.Page.update('Controls.Submit.Executes.Type': { $exists : true } }, { $unset : { 'Controls.Submit.Executes.Type' : 1 } }, false, true);)
db.Page.update('Controls.Submit.Executes.Type': { $exists : true } }, { $unset : { 'Controls.$.Submit.Executes.$.Type' : 1 } }, false, true);)
但是,如果我执行db.Page.find('Controls.Submit.Executes.Type': { $exists : true } })
它确实会返回所有仍然具有 Type 属性的 Executes。
这可以实现吗?谢谢!