我正在实现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
按钮之前,状态应该已经存在,表明该用户是否已经喜欢该线程。