MongoDB - 当嵌套键是变量时从对象中删除 ($unset) 嵌套键
MongoDB - Removing ($unset) nested key from object when nested key is a variable
考虑这份讲师 Johnny Appleseed 的课程开始时间文档:
{
_id: 'ka83nala9cya9epsj',
fullName: Johnny Appleseed,
schedule: {
'11/05/2016': '12:30',
'11/15/2016': '2:30',
'11/16/2016': '1:30',
'12/07/2016': '9:30',
'12/18/2016': '10:30',
'12/23/2016': '8:30',
}
...
}
我们还将有一个功能来处理所有这些伟大的事情。我尝试了几种不同的 mongo.update()
组合,但似乎没有什么是完全正确的。这是一个我认为可行但仍然行不通的示例。
function removeStartTime(_instrName, _lessonDate) {
const _scheduleKey = `schedule.${_lessonDate}`;
return Instructors.update({ fullName: _instrName }, { $unset: { _scheduleKey: 1 } });
}
目标:
从计划的 2016 年 12 月 18 日日期取消安排(删除)Johnny Appleseed,因此完成的文档将如下所示:
{
_id: 'ka83nala9cya9epsj',
fullName: Johnny Appleseed,
schedule: {
'11/05/2016': '12:30',
'11/15/2016': '2:30',
'11/16/2016': '1:30',
'12/07/2016': '9:30',
'12/23/2016': '8:30',
}
...
}
请帮忙,谢谢!
Instructors.update({fullName: _instrName},{"$unset": {"schedule.12/18/2016": ""} })
当使用方括号括起变量作为 属性 名称时,您需要使用 computed property name 语法:
Instructors.update({ fullName: _instrName }, { $unset: { [_scheduleKey]: 1 } });
考虑这份讲师 Johnny Appleseed 的课程开始时间文档:
{
_id: 'ka83nala9cya9epsj',
fullName: Johnny Appleseed,
schedule: {
'11/05/2016': '12:30',
'11/15/2016': '2:30',
'11/16/2016': '1:30',
'12/07/2016': '9:30',
'12/18/2016': '10:30',
'12/23/2016': '8:30',
}
...
}
我们还将有一个功能来处理所有这些伟大的事情。我尝试了几种不同的 mongo.update()
组合,但似乎没有什么是完全正确的。这是一个我认为可行但仍然行不通的示例。
function removeStartTime(_instrName, _lessonDate) {
const _scheduleKey = `schedule.${_lessonDate}`;
return Instructors.update({ fullName: _instrName }, { $unset: { _scheduleKey: 1 } });
}
目标:
从计划的 2016 年 12 月 18 日日期取消安排(删除)Johnny Appleseed,因此完成的文档将如下所示:
{
_id: 'ka83nala9cya9epsj',
fullName: Johnny Appleseed,
schedule: {
'11/05/2016': '12:30',
'11/15/2016': '2:30',
'11/16/2016': '1:30',
'12/07/2016': '9:30',
'12/23/2016': '8:30',
}
...
}
请帮忙,谢谢!
Instructors.update({fullName: _instrName},{"$unset": {"schedule.12/18/2016": ""} })
当使用方括号括起变量作为 属性 名称时,您需要使用 computed property name 语法:
Instructors.update({ fullName: _instrName }, { $unset: { [_scheduleKey]: 1 } });