mongoose提供upsert = true错误输出

时间:2015-04-27 20:27:36

标签: node.js mongodb mongoose

我第一次使用mongoose并声明我的会话模型如下

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var sessionSchema = new Schema({
    session_id : String,
    users : [{
        user_id : String,
        user_type : String,
    }],
    start_time : Date
});


var SessionInfo = mongoose.model('SessionInfo', sessionSchema);

module.exports = SessionInfo

现在我正在尝试更新users数组,每当用户使用相同的会话ID加入我的套接字服务器时,用户的详细信息应该更新

以下是

的代码
    newSession.update({session_id : sessionId},
    {$push: {users : 
        {user_id : userId, 
        user_type : userType}
    }},
    {safe: true, upsert: true},   
    function(err,model){
        console.log(err);
    });

但是每当客户端连接到节点js服务器时,我都会得到以下错误

2015年4月28日星期二01:53:07 GMT + 0530(IST)接受连接。

/home/rahulshr/node_modules/mongoose/lib/query.js:1878       oldCb(错误,结果?result.result:{ok:0,n:0,nModified:0});       ^ TypeError:object不是函数     在Query.callback(/home/rahulshr/node_modules/mongoose/lib/query.js:1878:7)     在/home/rahulshr/node_modules/mongoose/node_modules/kareem/index.js:167:19     在/home/rahulshr/node_modules/mongoose/node_modules/kareem/index.js:103:16     at process._tickCallback(node.js:415:13)

1 个答案:

答案 0 :(得分:1)

我找到了根本原因,而不是使用Session模式的实例调用update(在本例中为newSession)我应该用SessionInfo调用它