从MongoDB查询中获取数据(在Auth0规则中)

时间:2018-12-10 23:12:07

标签: javascript angular mongodb auth0

我无法从mongoDb(托管在Mlab中)中获取数据,总是返回相同的错误:用户不存在。 这是一个非常简单的查询,但我似乎无法正确解决。我的用户在数据库中具有电子邮件和角色,因此我试图根据电子邮件进行查询并获得角色。

mongo('mongodb://user:pass@data.mlab.com:port/database',
          function (db) {
      console.log(user.email);
      var users = db.collection('users');
      var result = users.findOne({email: 'email@email.com'});
      var role = result.role;

我想念什么?

2 个答案:

答案 0 :(得分:1)

mongoose.Promise = global.Promise; // Promise fix if you will use mongoose

mongoose
  .connect(
    "mongodb://user:pass@data.mlab.com:port/database",
    { useNewUrlParser: true, useMongoClient: true }
  )
  .then(db => {
    let dbo = db.db("database");
    let query = { email: "email@email.com" };
    dbo
      .collection("users")
      .find(query)
      .toArray(function(err, result) {
        if (err) throw err;
        // remember it returs array
        // you can map this array
        // like this -> result.map(user => console.log(user.role))
        console.log(result);
        db.close();
      });
  })
  .catch(console.log);

尝试使用猫鼬,并确保您按照here

的描述使用自己的诺言

答案 1 :(得分:0)

尝试一下:

mongo('mongodb://user:pass@data.mlab.com:port/database', function (db) {

      var users = db.collection('users');
      users.findOne({email: 'email@email.com'}, , function (err, user) {
          if (err) return callback(err);

          if (!user) return if (!user) return callback(new WrongUsernameOrPasswordError(email)

          var role = result.role;

      });

您还可以查看自定义数据库连接脚本中使用的MongoDB登录模板:https://auth0.com/docs/connections/database/custom-db/templates/login#mongodb