【问题标题】:fetch a particular value using node js and mongodb使用节点 js 和 mongodb 获取特定值
【发布时间】:2016-08-22 06:28:11
【问题描述】:

我必须尝试使用​​ Node.js 从 MongoDB 获取字段值。但它在我的控制台中显示undefined。我的要求是使用 Node.js 从 MongoDB 打印控制台或浏览器中的数据。

1)。这是我的节点 js

this.levelChange = function(req, res, next){
    try{
        var query = {'level_num':2};
        QuizLevel.find(query,function(err,data){
            var a = data.min_score;
            console.log(a);
            res.send(a);
        });
    }catch(err){
        console.log("Error");
        return next(err);
    }
};

2)。这是我的 js 模式

{
    _id:{type:String},
    age:{type:Number},
    level_num:{type:String},
    min_score:{type:String},
    max_questions:{type:String}
}

3). 这是我的控制台输出

undefined

4)。这是我的 JSON 数据

{
  "age":5,
  "level_num":1,
  "min_score":10,
  "max_questions":30
},
{
  "age":5,
  "level_num":2,
  "min_score":12,
  "max_questions":33
}

【问题讨论】:

  • console.log(data); 在控制台中查看输出,数据是否包含您的列?
  • 你正在检索多条记录是数据库,所以你必须使用循环获取数据,或者你也可以使用像 data[0].min_score 这样的索引;

标签: javascript node.js mongodb


【解决方案1】:

只需将 findOne(查找返回文档数组)与项目字段(仅返回所需字段)一起使用。

别忘了检查错误字段!

try{
    var query = {'level_num':2};
    QuizLevel.findOne(query,{min_score: 1}, function(err,data){
        if(err || !data)
        {
           console.log(err);
           return next(err);
        }
        else
        {
          var a = data.min_score;
          console.log(a);
          res.send(a);
        }
    });
}catch(err){
    console.log("Error");
    return next(err);
}

【讨论】:

    【解决方案2】:

    我可能不正确,但看起来您正在尝试访问对象属性,而结果是一个集合,请参阅:

    data.min_score // => [{ ... }, { ... }].min_score
    

    data[0].min_score
    

    你想要达到的效果是这样的:

    var scores = data.map((function (item) {
      return item.min_score;
    });
    
    console.log(scores);
    

    您始终可以使用console.log(typeof data) 来检查结果的类型,或者直接写console.log(data),有时console.log(Object.keys(data)) 也能派上用场,用于简单的调试,更不用说节点检查器了。

    【讨论】:

    • 我得到了这个[未定义]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多