首页 > 解决方案 > Mongoose CastError 更新时

问题描述

我有一个模型 User.js,它的定义如下:

var mongoose= require('mongoose'),
    Schema = mongoose.Schema,
    UserSchema = new Schema({
        name: String,
        activeConnections: [{type: Schema.Types.ObjectId, ref: 'Room'}]
    });
module.exports = mongoose.model('User', UserSchema);

Room 参考适用于另一个文件 Room.js 中的另一个模型,但我认为这里没有必要。

我的问题是,当我尝试更新 activeConnections 时,我有一个 CastError 说:Cast to ObjectId failed for value "1" at path activeConnection。

请注意,在我进行更新时,activeConnections 应该是一个空数组。

那么有人可以帮我解决这个问题吗?

更新:

更新操作发生在以下控制器中

var User = require('../models/User');
User.findById(#validObjectId).exec(function(err,      result) {
    var array = [#validObjectId, #validObjectId];
    var activeConnections = result.activeConnections.push(activeConnections);
    User.findByIdAndUpdate(#validObjectId, {'activeConnections': activeConnections}).exec(function(err, user) {
        if(err) return console.log(err);
        else
            //do something;
    });
})

标签: javascriptmongodbmongoose

解决方案


推荐阅读