【发布时间】:2020-10-30 06:26:13
【问题描述】:
我有 2 个模型,分别命名为“帖子”和“状态”,并希望在其中实现点赞。首先,我希望 like 能够根据其增长方式记录时间戳和其他内容等数据,这就是为什么我让“like”成为它自己的模型。
问题在于“帖子”和“状态”这两个模型各自拥有“点赞”功能。
有没有一种方法可以重用“like”模型,而不是为“posts”和“status”创建单独的“like”模型,或者您将如何亲自实现这样的东西?
下面是帖子模型
const postSchema = new mongoose.Schema({
title: {
type: String,
required: true,
trim: true
},
description: {
type: String,
required: true,
trim: true
},
owner: {
type: mongoose.Schema.Types.ObjectId,
required: true,
ref: 'User'
}
}, {
timestamps: true
})
下面是状态模型
const statusSchema = new mongoose.Schema({
Body: {
type: String,
required: true,
trim: true
},
owner: {
type: mongoose.Schema.Types.ObjectId,
required: true,
ref: 'User'
},
tags: [{
type: mongoose.Schema.Types.ObjectId,
required: True,
ref: 'User'
}]
}, {
timestamps: true
})
这是一个喜欢模型,我希望用户能够同时喜欢用户和状态的帖子,同时仍然能够根据增长和需求保留喜欢的时间和其他信息等信息
const likeSchema = new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
required: true,
ref: 'User'
},
likedObject: {
type: mongoose.Schema.Types.ObjectId,
required: true,
ref: 'Posts'
}
}, {
timestamps: true
})
有没有一种方法可以重用“喜欢”模型,而不是为“帖子”和“状态”创建单独的“喜欢”模型来捕获用户以及他们喜欢其他用户的状态和帖子的时间?
【问题讨论】: