在获取线程时,检查用户是否喜欢线程的正确方法是什么?

时间:2017-06-14 10:17:36

标签: mongodb mongoose model

我正在实现like功能,用户可以喜欢并且不像线程。

The thread model is like this:

const ThreadSchema = new mongoose.Schema({
    author: {
        id: { type: ObjectID, required: true, ref: 'User' },
        screen_name: { type: String, required: true },
        picture: { type: String, required: true },
    },
    theme: { type: String },
    text: { type: String, required: true },
    comments: {
        count: { type: Number, default: 0 },
    },
    likes: {
        count: { type: Number, default: 0 },
        users: [{
            _id: false,
            id: { type: ObjectID, required: true, ref: 'User' },
            screen_name: { type: String, required: true },
            picture: { type: String, required: true },
        }],
    },
}, {
    timestamps: true,
});

有些棘手的是,当用户发送获取线程信息的请求时,我需要告诉客户端此用户之前是否喜欢此线程。

这是否意味着每次客户端发送获取线程的请求时,我都需要遍历thread.likes.users以查找他的ID是否存在?这个检查看起来很重,特别是当用户试图检索列表时......

对此更好的解决方案吗?

要求很简单,就在用户点击like按钮之前,状态应该已经存在,表明该用户是否已经喜欢该线程。

0 个答案:

没有答案