首页 文章

Mongoose findOne()返回一个空对象

提问于
浏览
0

我找到一个单独的文档使用 findOne() 我的文档有 userid 作为我的用户模型中的一个关键 .

Example

{
   userid: 1,
   name: 'John'
}

现在,当我执行以下操作时,我能够将此文档作为对象接收

users.findOne({userid: 1}, function(e, data){
   if(e){
      return (res.send('Failed'))
   }else{
      return (res.send(data))
   }
});

However ,如果我尝试动态提交 userid 的相同值,则 data obj返回 null 并且仍未执行 if(e) 语句 .

Example

users.findOne({userid: req.body.userid}, function(e, data){
   if(e){
      return (res.send('Failed'))
   }else{
      return (res.send(data))
   }
});

我控制台记录了 req.body.userid 的值,并在我动态传递它时检查它是1 .

我究竟做错了什么? req.body.userid 的值是否未正确传递给 userid 键?

1 回答

  • 2

    如果您尝试使用变量传递过滤器值,则需要使用过滤器对象正确设置它

    检查下面的代码

    var key = "userId"; //example
    var value = req.body.userId;
    var filter = {};
    filter[key] = value;
    
        user.model.findOne(filter, function(e, data){
           if(e){
              return (res.send('Failed'))
           }else{
              return (res.send(data))
           }
        });
    

相关问题