我一直在开发一个应用程序,用于为我的个人项目租用公寓。我一直想知道如何构建/实现一个使用mongodb作为数据库的当前应用程序的收件箱系统。
这样的功能有什么关系?是否可以定义一个名为messages的模式?
var MessageSchema = new mongoose.Schema({
message: String,
sender : {
id : {
type : mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
}
recipient : {
id : {
type : mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
}
)};
如果我要向用户y发送消息,那么它将作为收件人存储,x值将是发件人。当我想渲染一个名为inbox的页面时,我可以使用Messages.find({req.user._id)对所有消息进行排序吗?我在架构设计方面有点迷失。
答案 0 :(得分:1)
对于架构,您可能需要以下内容:
const messageSchema = new mongoose.Schema({
subject: String,
body: String,
seen: Boolean,
sender: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
}
recipient: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
}
})
const userSchema = new mongoose.Schema({
username: String,
email: Boolean,
type: String
})
var Message = mongoose.model('Message', messageSchema);
var User = mongoose.model('User', userSchema);
对于查询,您可以找到所需的一切here