Can';t使用javascript和mongodb将json对象推送到数组中

Can';t使用javascript和mongodb将json对象推送到数组中,javascript,mongodb,Javascript,Mongodb,我在导入学生模型数据时遇到问题,其模式如下所示: var StudentSchema = new Schema({ firstName: { type: String, trim: true, default: '' //validate: [validateLocalStrategyProperty, 'Please fill in your first name'] }, lastName: {

我在导入学生模型数据时遇到问题,其模式如下所示:

var StudentSchema = new Schema({
    firstName: {
        type: String,
        trim: true,
        default: ''
        //validate: [validateLocalStrategyProperty, 'Please fill in your first name']
    },
    lastName: {
        type: String,
        trim: true,
        default: ''
        //validate: [validateLocalStrategyProperty, 'Please fill in your last name']
    },
    worksnap: {
        user: {
            type: Object
        },
        timeEntries : [],
    },
    timeEntries : []
});
虽然我推送项目的javascript代码如下所示:

Student.findOne({
            'worksnap.user.user_id': item.user_id[0]
        })
        .populate('user')
        .exec(function (err, student) {
            if (err) {
                throw err;
            }
            //student.timeEntries.push(item); // this works
            student.worksnap.timeEntries.push(item); // this does not work
            student.save(function (err) {
                if (err) {
                    //return res.status(400).send({
                    //    message: errorHandler.getErrorMessage(err)
                    //});
                } else {
                    console.log('item inserted...');
                }
            });

        });
如您所见,如果我在worksnap对象之外使用timeEntries数组,它工作正常,它会将项作为对象插入该数组中。。。我只是不知道为什么它在worksnap对象中不起作用

在mongo中有没有其他选项可以将json对象添加到数组类型中

谢谢使用

启用精益选项的查询返回的文档是纯JavaScript对象,而不是
MongooseDocuments
。他们没有保存方法、getter/setter或其他Mongoose魔法

Student.findOne({
“worksnap.user.user\u id”:项.user\u id[0]
})
.populate('用户')
.lean()/----已添加!
.exec(函数(错误,学生){
如果(错误){
犯错误;
}
//student.timeEntries.push(item);//这很有效
student.worksnap.timeEntries.push(item);//这不起作用
保存(函数(错误){
如果(错误){
//返回资源状态(400)。发送({
//消息:errorHandler.getErrorMessage(err)
//});
}否则{
log('插入的项…');
}
});
});使用

启用精益选项的查询返回的文档是纯JavaScript对象,而不是
MongooseDocuments
。他们没有保存方法、getter/setter或其他Mongoose魔法

Student.findOne({
“worksnap.user.user\u id”:项.user\u id[0]
})
.populate('用户')
.lean()/----已添加!
.exec(函数(错误,学生){
如果(错误){
犯错误;
}
//student.timeEntries.push(item);//这很有效
student.worksnap.timeEntries.push(item);//这不起作用
保存(函数(错误){
如果(错误){
//返回资源状态(400)。发送({
//消息:errorHandler.getErrorMessage(err)
//});
}否则{
log('插入的项…');
}
});

});添加精益()后仍不工作,它在student.save()行中投诉添加精益()后仍不工作,它在student.save()行中投诉