使用Node.js读取MongoDb集合时遇到的问题

时间:2015-02-10 06:46:22

标签: javascript json node.js mongodb

使用mongoose和Node.js读取此集合时遇到问题:

I have one JSON inside mi Collection

我的Collection里面有一个JSON,我尝试用这段代码阅读:

materias.find().exec(function(err1,materias){
        if(err1){console.log(err1); return next();}
        for(x=0;x<materias.length;x++){
            //console.log(materias[x].Nombre);
            //var arreglo=materias[x].Horario[0].Dia; // TRY ONE
            var arreglo=JSON.parse(materias[x].Horario[0]); // TRY TWO
            console.log(arreglo[0]);

        }
         //RESPONSE TRY ONE
         console.log(arreglo) UNDEFINED
         //RESPONSE TRY TWO
         undefined [ 
         //if I use JSON.stringify the response is {[object][object]...
enter code here

3 个答案:

答案 0 :(得分:0)

您无需使用mongoose手动解析JSON

你得到undefined,因为你在循环中定义变量arreglo但是尝试在它之外访问它。这应该有效:

materias.find().exec(function(err1,materias){
if(err1){console.log(err1); return next();}
for(x=0;x<materias.length;x++)  {        
    var arreglo = materias[x].Horario[0]; // TRY TWO
    console.log(arreglo);   
}

答案 1 :(得分:0)

我认为错误是:您将数据库命名为materias,并且您对返回的集合使用相同的名称。尝试将返回名称集合更改为其他名称。

materias.find()。EXEC(功能(ERR1,的 change_name_here ){

//所需代码
}

答案 2 :(得分:0)

FINALYYYYYYYYYY我修改了它改变我的猫鼬模型 我有这个:

var materias=new Schema({
    Nombre:{type:String, required:true},
    Docente:{type:String, required:true},
    Horario:{type:String, required:true}

});
module.exports = materias;

并为此进行更改:

Horario:[{Dia:String, Hora:String, Tiempo:String}]

阅读:

for(x=0;x<materias.length;x++){
                var arreglo=materias[x].Horario; // TRY TWO
                console.log(arreglo[0].Dia);

            }