使用Express / MongoDB构build收件箱系统

我一直在为我的个人项目开发一个租赁公寓的应用程序。 我一直想知道如何build立/实现一个收件箱系统到当前使用MongoDB作为数据库的应用程序。

这个function有什么关系? 是否有可能定义一个称为消息的模式?

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值将是发件人。 当我想呈现一个名为收件箱的页面时,我可以做Messages.find({req.user._id)来sorting所有消息? 对于架构devise,我有点遗憾。

对于模式,你可能想要这样的东西:

 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);