Mongo:如何显示来自2个不同集合的用户特定数据

时间:2020-04-04 21:28:30

标签: node.js mongodb mongoose

我想显示用户指定的数据。我使用Passport验证用户身份,并且我有2个数据库名称:

  • 用户
  • 任务
    在“用户”中有:用户名,电子邮件,密码字段
    在Tasks中,我有:startTime,endTime,sessionTime,Email
    所以我只想显示与电子邮件匹配的数据,或者是否有其他方法可以识别要显示的用户特定数据

我的获取要求代码:

router.get('/show', (req, res, next) => {
    Task.find({})
        .exec(function (err, task) {
            if (err) {
                res.json({
                    status: false,
                    Message: "Error in Getting Task",
                    Error: err
                })
            }
            res.json(task)
        })
})

有什么方法只能获取用户指定的数据

或者我可以对护照代码进行一些更改以显示特定数据
护照代码:

   function (username, password, done) {
        User.findOne({ email: username }, function (err, user) {
            if (err) { return done(err); }
            if (!user) {
                return done(null, false, { message: 'Incorrect username.' });
            }
            if (!user.isValid(password)) {
                return done(null, false, { message: 'Incorrect password.' });
            }
            return done(null, user);
        });
    }
));


passport.serializeUser(function(user, done) {
    done(null, user._id);
  });

  passport.deserializeUser(function(id, done) {
    User.findById(id, function(err, user) {
      done(err, user);
    });
  }); 

谢谢。

2 个答案:

答案 0 :(得分:1)

伙计,如果来自usar的电子邮件和来自任务的电子邮件完全相等,则可以使用mongo DB中的string a = str.find("\"")

将聚合框架与NodeJS结合使用: https://mongodb.github.io/node-mongodb-native/2.0/tutorials/aggregation/

使用查找(等效于内部联接): https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/

最好

答案 1 :(得分:0)

pch =

这可能对您有帮助

相关问题