如果评论没有自己的模型,我们如何删除用户的所有评论?

时间:2019-10-19 19:59:35

标签: node.js mongoose

因此,我试图弄清楚如何删除用户对猫鼬的评论,但是我不确定如何删除,但这主要是因为我的应用程序上的评论没有自己的模型。

如果我真的想这样做,我会给他们自己的模型做注释,但是我想保持我的模式不变。所以我的PostSchema看起来像这样:

const PostSchema = new Schema({
    user: [ 
        {
            type : mongoose.Schema.ObjectId, ref : 'users'
        } 
    ],
    text: {
        type: String,
        required: true
    },
    name: {
        type: String
    },
    likes: [
        {
            user: {
                type: Schema.Types.ObjectId,
                ref: 'users'
            }
        }
    ],
    comments: [
        {
            user: {
                type: Schema.Types.ObjectId,
                ref: 'users'
            },
            text: {
                type: String,
                require: true
            },
            name: {
                type: String
            },
            date: {
                type: Date,
                default: Date.now
            }
        }


    ],
    date: {
        type: Date,
        default: Date.now 
    }

}); 

我希望能够删除用户的所有评论,但不能删除帖子。这是可以完成的事情,还是唯一的方法就是创建一个评论模型并建立一对多关系?

1 个答案:

答案 0 :(得分:0)

以下内容将从每条帖子中删除用户的评论。

MyPostModel.updateMany({}, { $pull: { comments: { user: userIdToRemove } } });