我想创建一个功能,为特定的学生和科目添加分数
这是我的文档的外观
"_id" : ObjectId("5b454b545b4545b"),
"name" : "Bob",
"last_name" : "Bob",
"nr_album" : "222",
"grades" ; {
"IT" : [
3,
3,
5,
4
]
}
这就是我想出的
function addGrade(
nr_album,grades,value
) {
db.studenci.update (
{nr_album: nr_album},
{ $push: { [grades]: value}});
}
addGrade("222","grades.IT",100)
它工作正常,但是我想实现的是除“ grades.IT”外,仅在参数中传递“ IT”。
答案 0 :(得分:0)
您可以在ES2015中使用template strings。
通过这样的参数
addGrade("222","IT",100)
获取参数“ IT” ,并使其成为动态必需的字符串
function addGrade(nr_album, grades, value) {
const string = `grades.{$grades}`
db.studenci.update({
nr_album: nr_album
}, {
$push: { [string]: value }
});
}