如何在mongodb / mongoose中将用户访问权限与数据库分开

时间:2019-04-03 18:29:19

标签: node.js mongodb mongoose

在我当前正在使用的Web应用程序上,用户可以单击一个按钮,该按钮会将电子邮件存储到我的MongoDB数据库中。我还有一个按钮,用户可以在选择时间范围后单击该按钮,该时间范围显示该时间存储在数据库中的所有消息。我遇到的问题是,当不同的用户登录时,他们可以通过单击检索消息的按钮来查看其他用户的消息。

我试图弄清楚该如何做,以便用户只能看到他们存储的消息,而不能看到别人的消息。任何想法都会很棒。

report_schema

var mongoose = require('mongoose')

var sera = mongoose.Schema({
    isRead: Boolean,
    subject: String,
    from: String,
    receivedDateTime: Date,
    sentDateTime: Date
});

var user = mongoose.Schema({
    userID: {
        type: mongoose.Schema.Types.ObjectId,
        userName: String,
        ref: 'SERA'
    }
});


module.exports = mongoose.model("SERA", sera)

1 个答案:

答案 0 :(得分:1)

您可能想要创建另一个包含用户详细信息的集合,并在下面的代码中添加引用以标识用户:

var mongoose = require('mongoose')

var sera = mongoose.Schema({
    isRead: Boolean,
    subject: String,
    from: String,
    receivedDateTime: Date,
    sentDateTime: Date,
    user: {type: mongoose.Schema.Types.ObjectId, ref: 'User'}      <-- this line
});

module.exports = mongoose.model("SERA", sera)