MongoDB-获取用户记录

时间:2018-08-20 17:50:20

标签: mongodb

我正在使用Mongodb,并且想知道如何获取用户创建的记录。在下面的示例中,我必须用不同的电子邮件记录每个邮件(createdBy),但是如何获取当前用户登录的记录?

模式结果:

var resultSchema = new Schema({
test: { type: String, required: true, lowercase: true},
status: { type: String, required: true, lowercase: true},
date: { type: Date, required: true},
amount: { type: Number, required: true},
createdBy: { type: String, required: true},
});

模式用户:

var userSchema = new Schema({
email: { type: String, required: true, lowercase: true},
username: { type: String, required: true, lowercase: true},
password: { type: String, required: true}
});

数据库:

"recipe": [
    {
        "_id": "5b7af572a1051b1b18aec627",
        "test": "asassdasdasd",
        "status": "waiting",
        "date": "2018-08-06T22:00:00.000Z",
        "amount": 2,
        "createdBy": "test@outlook.com",
        "__v": 0
    }
]

"recipe": [
    {
        "_id": "5b7af572a1051b1b18aec621",
        "test": "test2",
        "status": "waiting",
        "date": "2018-08-06T22:00:00.000Z",
        "amount": 2,
        "createdBy": "notTest@outlook.com",
        "__v": 0
    }
]

我尝试过,但是返回空:

router.get('/userResults', (req, res) => {
Result.find({createdBy: req.body.createdBy}, (err, result) => {
  })

})

1 个答案:

答案 0 :(得分:0)

要说出用户是否已登录并识别登录的用户,我确定您有某种机制来获取当前用户的电子邮件ID。 因此,理想情况下,您应该可以访问已登录并进行API调用的用户的电子邮件ID。

  • 提供一个中间件来解析每个请求中的电子邮件ID,而不是通过数据库调用来检查用户的电子邮件ID。
  • 查询:db.resultSchema.find({createdBy:parsed_email_id_from_api_request}

使用JWT的一种方法是使用中间件解析令牌,然后将电子邮件或任何其他相关字段转发到请求,在此您进行数据库调用以检查“结果”集合。