【发布时间】:2021-10-17 16:49:24
【问题描述】:
用户可以在我的应用上创建帐户,并可以点赞、分享 X 个帖子。
问题是,每当用户删除他/她的帐户时,与他们相关的所有内容也应该被删除;到目前为止,我已经能够修复大部分问题,但是这个:
await this.model('Post').updateMany(
{
'sharedby.user': this._id
},
{
$pull: { 'sharedby.user': this._id }
}
);
显然,我使用点表示法,因为user 是在Post 模型的sharedby 对象中找到的对象之一。这里是:
sharedby: [
{
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
post: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
}
],
只要有share,就会触发这个函数:
const newshare = await Post.findByIdAndUpdate(
{
_id: req.params.id,
sharedby: { $ne: { user: req.user._id } }
},
{
$push: { sharedby: { user: req.user._id, post: post._id } }
},
{
new: true,
runValidators: true,
setDefaultsOnInsert: true
}
);
差不多就是这样。我真的不知道为什么它不起作用。有什么建议?谢谢!。
【问题讨论】:
标签: javascript node.js mongodb express mongoose