Mongodb $unset未按预期在Mongo中删除属性
集合程序中的文档具有以下结构Mongodb $unset未按预期在Mongo中删除属性,mongodb,meteor,Mongodb,Meteor,集合程序中的文档具有以下结构 { ... "Students" : { "Friday" : { "DUETS" : [ "", "" ], "JOHN MCKEON" : [ "", "" ], "TERRY STARR" : [ "", ""
{
...
"Students" : {
"Friday" : {
"DUETS" : [
"",
""
],
"JOHN MCKEON" : [
"",
""
],
"TERRY STARR" : [
"",
""
],
"REBECCA SAWYER-FAY" : [
"",
""
]
},
"Thursday" : {
"SIOBHAN ARMSTRONG" : [
"",
""
],
"REBECCA SAWYER-FAY" : [
"",
""
],
"CHERYL RITZ" : [
"",
""
],
"CLARE DELANEY" : [
"",
""
]
},
"Tuesday" : {
"JOHN MCKEON" : [
"",
""
]
},
"Wednesday" : {
"LOIS ROSS" : [
"9:00",
"10:00"
],
"ANNE DICKINSON" : [
"10:00",
"11:00"
],
"BECKY HOWARD" : [
"11:00",
"12:00"
],
"MAX LUCAS" : [
"",
""
]
}
},
....
}
如果我想删除Monday属性,我可以这样做,并且它可以按预期工作
Programs.update({ _id: id }, { $unset: { 'Students.Monday': "" }});
但是我很难将一个属性移到更深的一层。例如,如果我想删除“星期五”中的“二重唱”
我正在尝试我认为有效的方法:
Programs.update({ _id: id}, { $unset: { 'Students.Friday.DUETS': "" }});
我在这方面没有成功。什么应该起作用?您可以这样删除:
db.collection.update({}, {$unset: {"Students.Friday.DUETS": 1}}, false, true);
从我看来,你的错误在别的地方。你确定你选择/检查了正确的实体吗?我想你是对的。问题在别处。调用更新的函数未按计划运行。