Javascript 使用节点js和mongodb获取特定值
我必须尝试使用Node.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打印数据
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]