mongodb两次save重复数据

Anple 发布于 2016/09/23 15:59
阅读 631
收藏 0
var runePage = new Schema({
    // todo:如果剛好符合ObjectId的24個字符的規則就用ObjectId,不行就string
    //_id : {type: Schema.Types.ObjectId, index: true, unique: true, default: new mongoose.Types.ObjectId()},
    roleId: {type: String, index: true},
    runePages: [{
        pageId: {type: Number, min: 0, default: 0},
        name: {type: String, default: ''},
        inlayRunes: [{
            pos: {type: Number, min: 0, default: 0},
            runeId: {type: Number, min: 0, default: 0}
        }]
    }]
}, {collection: "runePage ", versionKey: false, bufferCommands:false});


runePage .statics.findByRoleId = function (roleId, cb) {
    this.findOne({roleId: roleId}, cb);
};


//初始化,这里简写...
var self = this;
daoRunePage.findByRoleId(10001, function(err, data){
    self.data = data;
});


//事情发生地方
self.data.runePages.push({
    pageId:1,
    name:'111',
    inlayRunes:[]
});
self.data.runePages.push({
    pageId:2,
    name:'222',
    inlayRunes:[]
});


self.data.save();
self.data.save();


//查看mongodb数据库
{
    "_id" : ObjectId("5798a91b6bf289080ddb4e90"),
    "roleId" : 10001,
    "runePages" : [ 
        {
            "_id" : ObjectId("57c04ab8558b3a5413530881"),
            "name" : "111",
            "pageId" : 1,
            "inlayRunes" : []
        }, 
        {
            "_id" : ObjectId("57c04ab8558b3a5413530882"),
            "name" : "222",
            "pageId" : 2,
            "inlayRunes" : []
        },
        {
            "_id" : ObjectId("57c04ab8558b3a5413530881"),
            "name" : "111",
            "pageId" : 1,
            "inlayRunes" : []
        }, 
        {
            "_id" : ObjectId("57c04ab8558b3a5413530882"),
            "name" : "222",
            "pageId" : 2,
            "inlayRunes" : []
        }
    ]
}


查看内存,self.data.runePages只有两条数据,
数据库runePages变成4条,后面两条跟前面两条一模一样!!!
请求各位大神这是什么原因

加载中
返回顶部
顶部