这是我编写的代码,每次执行都会将所有数据放在同一个对象中。我想每次都创建一个新对象。
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
}]
});
这是数据库中的数据,前两个对象表示我希望每次执行数组中的数据时如何保存数据。最后两个是执行代码时得到的结果。
我通过邮递员发送的数据
{
"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' ]