每次使用$ each和数组数据更新mongodb来创建一个新对象

时间:2018-07-20 09:48:24

标签: node.js mongodb mongoose mongoose-schema

这是我编写的代码,每次执行都会将所有数据放在同一个对象中。我想每次都创建一个新对象。

Course.findOneAndUpdate({
            schoolName: req.body.schoolName
          }, {
            $addToSet:{
              course: {
                $each: [{
                  name: name,
                  initial: initialss,
                  type: typess
                }]
              }
            }
          }, {
            safe: true,
            upsert: true
          }

如果我这样编写代码,每次都会得到一个新对象

Course.findOneAndUpdate({
                schoolName: req.body.schoolName
              }, {
                $addToSet:{
                  course: {
                    $each: [{
                      name: 'Computer Science',
                      initial: 'CS',
                      type: 'UG'
                    },{
                      name: 'Computer Engineering',
                      initial: 'CE',
                      type: 'UG'
                    }]
                  }
                }
              }, {
                safe: true,
                upsert: true
              }

这是我使用的架构

var CourseSchema = new Schema({
  schoolName: {
    type: String
  },
  course: [{
    name: String,
    initial: String,
    courseType:String
  }]
});

这是数据库中的数据,前两个对象表示我希望每次执行数组中的数据时如何保存数据。最后两个是执行代码时得到的结果。 enter image description here

我通过邮递员发送的数据

{
    "schoolName":"SOSE",
    "course": [{
        "name":"Civil Engineering",
        "initial":"CVE",
        "type":"UG"
    },
    {
        "name":"Mechanical Engineering",
        "initial":"ME",
        "type":"UG"
    },
    {
        "name":"Chemical Engineering",
        "initial":"CE",
        "type":"UG"
    }
    ]
}

然后将我从邮递员获得的值添加到特定数组中

name=[ 'Civil Engineering',
  'Mechanical Engineering',
  'Chemical Engineering' ]
initialss=[ 'CVE', 'ME', 'CE' ]
typess=[ 'UG', 'UG', 'UG' ]

0 个答案:

没有答案