我有一个带有字段数组的mongoose模式。
我需要直接设置数组字段而不必删除现有值。
我正在使用
item.files.concat(myfiles);
在下一个代码中,但它不起作用。只保存数组中的最后一项
//代码
var files=['file1','file2','file3']
var myfiles=[]
files.forEach(function(file){
myfiles.push({title:file});
}
});
//路由器
FileSchema.findById(id).exec( (err,item) => {
//fill files -- error is here
item.files.concat(myfiles);
item.save(function (err, data) {
if (err) {
return res.status(500).send(err)
}
res.send(data); //send response
})
})
//模式
const mongoose=require('mongoose');
const fileSchema = new mongoose.Schema({
id: {type: Number, unique:true},
...
...
files:[{title:{type: String}}]
});
答案 0 :(得分:0)
来自MDN网络文档:
concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
item.files = item.files.concat(myfiles);