Mongoose findOne()返回一个空对象

时间:2017-10-22 13:38:58

标签: node.js mongodb express mongoose

我使用findOne()找到一个单独的文档 我的文档userid是我用户模型中的关键之一。

示例

{
   userid: 1,
   name: 'John'
}

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

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

,如果我尝试动态提交相同的userid值,则data obj会返回null,而if(e)语句仍为users.findOne({userid: req.body.userid}, function(e, data){ if(e){ return (res.send('Failed')) }else{ return (res.send(data)) } }); 没有执行。

示例

req.body.userid

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

我做错了什么? userid的值是否未正确传递给part_new = FOREACH part GENERATE $0,$1,$2,$4; 密钥?

1 个答案:

答案 0 :(得分: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))
       }
    });