文档更新但不保存在mongoose中

时间:2016-07-22 21:57:01

标签: node.js mongodb mongoose mongoose-schema

我一直在试着弄清楚我的头发。我的文档显示它正在更新但不保存到数据库。基本上当我保存模块文档时,我希望更新层文档(这是有效的),并且层ID也要添加到当前模块文档中(它显示更新但不保存到数据库)

我的架构

var moduleSchema = new Schema({
    title: {
        type: String,
        unique: true
    },
    description: String,
    tier: [{
        type: Schema.Types.ObjectId,
        ref: 'Tier'
    }]
})

我的自定义实例方法

moduleSchema.methods.saveInTier = function(tierTitles, cb){

// expects an array of tier names

var self = this;


var updateTier = function(i){ 
    Tier.findOneAndUpdate({title: tierTitles[i]},
    {$addToSet: {modules: self._id}},
    function(err, tier){
        if(err) throw err;

        //self.tier.set(i, tier._id)
        self.tier.addToSet(tier._id)

        console.log("module saved in tier: ", tier.title)

        return self.tier

    })
}


for(var j=0;j<tierTitles.length;j++){
    updateTier(j)
}
}

创建文档

var module = new Module({
title: "Chat"
})

module.saveInTier(['default','gold'])

module.save(function(err){
if(err){
    if(err.code == '11000'){
        console.log("module already exists")
    } else {
        throw err
    }
}

console.log("module shows its been updated")
console.log("NEW module: ", module)

}) 

访问数据库

Module.find({}, function(err, docs){ 
console.log(docs) // the tier field is not updated in the database
})

0 个答案:

没有答案