无法使用mongoose创建数组

时间:2015-08-12 23:30:39

标签: node.js mongodb mongoose

这是一个非常奇怪的问题。

我不能使用数组usong mongoose。

这是我的用户架构:

var userSchema = mongoose.Schema({
list_users_ticked: [String],
name : { type: String, required: true } ,
reg_id: { type: String, required: true, unique: true }

});

这是我尝试使用此架构更新用户的方法:

exports.update = function(cur_reg_id, user_ticked) {

    User.find({reg_id: cur_reg_id},function(err, users){

        if (err) throw err;

        var len = users.length;

        if(len == 0 || len > 1){

                callback({'response':"You didn't register"});

        } else {

            var usr = users[0];
            console.log(usr)
            usr.list_users_ticked.push("This line is returning the `error!!!!!");`
           // users[0].save(function(err) {
            //    if (err) throw err;

              ///  callback({'response':"User Saved   " + user_ticked});

          //  });


        }});



        //console.log('User successfully updated!');
}

这是我登录用户的方式:

    exports.login = function(name, list_users_ticked, reg_id, callback) {

    var newuser = new User({
        name: name,
        list_users_ticked: list_users_ticked,
        reg_id: reg_id
    });

    User.find({reg_id: reg_id},function(err, users){

        var len = users.length;

        if(len == 0){
            newuser.save(function (err) {

                callback({'response':"Sucessfully Registered"});

            });
        }else{

            callback({'response':"User already Registered"});

        }});
}

这就是错误:

TypeError: Cannot read property 'push' of undefined

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

检查您的数据库。在架构中创建阵列之前,您是否已在数据库中保存了项目?如果你有一个没有字段list_users_ticked的项目,你会看到该错误,因为调用push不存在。