关于mongoose的create使用
发布于 6 年前 作者 tangtangtangtangtang 2358 次浏览 来自 问答

问题:使用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 image.png 进入then,也没有出错 image.png 数据库情况: image.png 再使用findOneAndUpdate后,scale又保存到数据库了。 请问这是什么情况啊,我哪里写的不对吗?谢谢 ps:没有发生报错

回到顶部