MongoDB:findOne返回null但文档存在于集合中

时间:2016-11-01 04:01:21

标签: node.js mongodb

我尝试在服务器端发送电子邮件和密码,并检查是否存在具有这些值的文档(它确实存在),但是当我在控制台中记录re.compile(r"^\s*(?P<Harmonic>\d+)\s+(?P<Frequency>\d+)\s+(?P<Magnitude>[-+]?(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[Ee][+-]?\d+)?)\s+(?P<Phase>[-+]?(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[Ee][+-]?\d+)?)\s+(?P<NormMag>[-+]?(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[Ee][+-]?\d+)?)\s+(?P<MormPhase>[-+]?(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[Ee][+-]?\d+)?)\s+$", re.MULTILINE) 时,查询它&#39 ; s null。

这是results集合中的文档:

users

这是我发送服务器端的内容:

{
    "_id" : ObjectId("580bcf9874ae28934705c0fc"),
    "email" : "johndoe@gmail.com",
    "password" : "pass"
}

这是我的代码(已更新):

{"email":"johndoe@gmail.com","password":"pass"}

3 个答案:

答案 0 :(得分:0)

每次传递带有错误参数的回调时,您有责任检查是否传递了错误,如果是,请处理错误。

在您的代码中,您有两个这样的回调:

mongo.connect('mongodb://localhost:27017', function (err, db)
users.findOne( { "email": userEmail, "password": userPassword }, function(err, results)

其中任何一个都可以返回可能解释该问题的错误对象。 将以下内容添加到每个回调的第一行:

if (err) {
  return console.log("error: " + err);
}

答案 1 :(得分:0)

在我的一个项目中,我遇到了类似的问题。这是因为我将集合和文档存储在与我的应用程序所连接的数据库不同的数据库中。检查一次。

答案 2 :(得分:-4)

users.findOne({'email' :  userEmail , 'password':userPassword }, function(err, result) {

console.log("result:"+result);
});