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()行中投诉