node.js - 如何在 mongodb/mongoose 中分离用户对数据库的访问

标签 node.js mongodb mongoose

在我目前正在开发的网络应用程序上,用户可以单击一个按钮,该按钮会将电子邮件存储到我的 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)

最佳答案

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

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)

关于node.js - 如何在 mongodb/mongoose 中分离用户对数据库的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55501962/

相关文章:

node.js - Heroku 应用程序无法正常工作

node.js - NodeJS 从其他进度获取 "live"输出

node.js - 使用自定义源代码替换默认的 Express/Connect JS 文件

mongodb - 使用 shell 中的奇怪字符访问 MONGO 集合,第二部分

javascript - Mongoose 查询 "hot"帖子

node.js - 在 db.collection.findOne( { parm : value } 中传递变量

javascript - 请参阅 Meteor.js 中允许/拒绝规则的更新文档

javascript - 我使用 auth0 进行用户身份验证,并且有一个用于 CRUD 帖子的 API(标题、img、desc)。如何对 CRUD api 进行经过身份验证的调用?

javascript - 我如何在 Mongoose 聚合中找到数组的长度

node.js - 如何使用聚合索引