我想用新数据在User模型中创建一个体验数组,问题是我没有在exec函数中保存数据,因此可以在前端将新数据推送到数组中。这就是我到目前为止所得到的。
router.post('/:username/experience', function(req, res) {
const username = req.params.username;
User.findOneAndUpdate(
username, {
$push: {
experience: req.body
}
}, {
safe: true,
upsert: true
})
.exec(function (err, data) {
console.log(data, "------>");
});
})
这是我的体验架构,在用户模型中称为“ experienceSchema”。
const ExperienceSchema = new Schema({
title: {
type: String,
required: true
},
company: {
type: String,
required: true
},
from: {
type: Date,
},
to: {
type: Date,
},
workingNow: {
type: Boolean,
default: false
},
description: {
type: String
}
}, {
usePushEach: true
})
答案 0 :(得分:1)
由于findOneAndUpdate
返回原始文档(更新前的状态),因此您需要在选项中添加new: true
才能获取更新的文档。
选项:
{
safe: true,
upsert: true,
new: true
}