Javascript 使用节点js和mongodb获取特定值

Javascript 使用节点js和mongodb获取特定值,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我必须尝试使用Node.js从MongoDB获取字段值。但它在我的控制台中显示了未定义的。我的要求是使用Node.js在控制台或浏览器中从MongoDB打印数据 1) 。这是我的节点js this.levelChange = function(req, res, next){ try{ var query = {'level_num':2}; QuizLevel.find(query,function(err,data){ var

我必须尝试使用Node.js从MongoDB获取字段值。但它在我的控制台中显示了
未定义的
。我的要求是使用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
}

我可能不正确,但看起来您试图在结果为集合时访问对象属性,请参见:

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

你想要达到的目标是:

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

console.log(scores);

您始终可以使用
console.log(数据类型)
检查结果类型,或者只需编写
console.log(数据)
,有时
console.log(对象.key(数据))
对于简单的调试也很方便,更不用说节点检查器了。

我可能不正确,但看起来您试图在结果为集合时访问对象属性,请参阅:

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

你想要达到的目标是:

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))
对于简单的调试也很方便,更不用说节点检查器了。

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

别忘了检查err字段

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);
}
只需将findOne(查找并返回文档数组)与项目字段(仅返回所需字段)一起使用即可

别忘了检查err字段

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);
}

console.log(数据);
请参见console中的输出,数据是否包含您的列?您正在检索多条记录,因此必须使用循环获取数据,或者也可以使用类似索引的数据[0]。最小分数;
console.log(数据)
查看控制台中的输出,数据是否包含您的列?您正在检索多个记录is数据库,因此您必须使用循环获取数据,或者您也可以使用类似索引的数据[0]。min_score;我得到这个[undefined]我得到这个[undefined]