如何创建将为对象的数组添加值的函数

时间:2019-01-24 15:08:04

标签: mongodb-query

我想创建一个功能,为特定的学生和科目添加分数

这是我的文档的外观

    "_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”。

1 个答案:

答案 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 }
  });
}