关于mongoose的create使用
问题:使用model.create(data)时,其中allocation里的scale保存不进去。二次保存使用findOneAndUpdate保存进去了。 allocation结构如下:
allocation:{
kinds:[],
toolTip:[],
scale:{},
legend:[]
}
代码如下: 1.graphModel代码
//graph schema
const graphSchema = new mongoose.Schema({
'allocation': Object,
'fileName': String,
'fileType': String,
'name': String,
'graph': String,
'owner': String //与users.account相同
})
graphSchema.statics.findByOwner = (owner, callback) => {
return this.find(owner, callback)
}
const graphModel = mongoose.model("graph", graphSchema);
module.exports = graphModel
2.model.create代码
data._id = _id;
await fsExtra.copy(`${fileBasePath}/temp.csv`,
`${fileBasePath}/${data._id}.csv`)
.catch(err => {
console.log(err)
})
data.fileName = `${data._id}.csv`
await db.graphModel.create(data)
.then(graph => {
ctx.body = {
code: true,
message: '保存成功',
_id: data._id
}
})
.catch(err => {
console.log(err)
})
3.model.findOneAndUpdate代码
await fsExtra.copy(`${fileBasePath}/temp.csv`,
`${fileBasePath}/${data._id}.csv`)
.catch(err => {
console.log(err)
})
await db.graphModel.findOneAndUpdate({ _id: data._id }, data)
.then(graph => {
ctx.body = {
code: true,
message: '保存成功',
_id: data._id
}
})
.catch(err => {
console.log(err)
})
表现: 1.model.create 进入then,也没有出错 数据库情况: 再使用findOneAndUpdate后,scale又保存到数据库了。 请问这是什么情况啊,我哪里写的不对吗?谢谢 ps:没有发生报错