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

时间:2017-04-24 15:45:34

标签: javascript node.js mongodb express ejs

我一直在开发一个应用程序,用于为我的个人项目租用公寓。我一直想知道如何构建/实现一个使用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)对所有消息进行排序吗?我在架构设计方面有点迷失。

1 个答案:

答案 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