鉴于以下代码以及我在API中使用mongoose populate()
这一事实,如何使用checkin user
更新_id
参考文档,同时?
我觉得它像鸡/问题。谢谢!
router.post('/', (req, res, err) => {
var checkin = new Checkin(req.body);
var user = new User(checkin.user);
checkin.save({
'user': checkin.user,
'checkin_comment': checkin.checkin_comment,
'rating_score': checkin.rating_score
});
});
Checkin
模型具有以下内容:
user: {
type: Schema.Types.ObjectId,
ref: 'User',
required: true
},
..而User
就是这个:
checkins: [{
type: Schema.Types.ObjectId,
ref: 'Checkin'
}],
答案 0 :(得分:1)
关于您的模型定义,似乎User模型上的属性checkins
是可选的。用户可以在没有签入参考的情况下存在。
如果是这种情况,则首先创建用户,然后签入并使用其ID更新用户。
修改:根据您的评论,我们假设用户已存在于数据库中且其ID在userId
中可用。
类似于:
checkin.save()
.then((checkinDoc) => {
return User.findOneAndUpdate(
{_id: userId},
{$push:{checkins: checkinDoc._id}},
{new: true}
);
});