我无法从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;
我想念什么?
答案 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