Node.js从mongodb

时间:2017-01-28 09:47:15

标签: javascript json node.js mongodb

我想显示来自json map的数据来表达

这是我的代码

var b = det.map(function(h) {
    var soalid = h.id_soal;
    var idarray = [ ];
    for (var i = 0; i < soalid.length; i++) {

        Soal.findOne({
            _id: soalid[i]
        }, function (err, sol) {

            idarray.push(sol);
            console.log("ping:" + idarray);
        });

    }
    res.render('ujian/viewDetail',{ujian: iduji, detail: det, soal: idarray, title: 'Lihat form ujian'});
});

我尝试运行到控制台我从json获取数据但没有在express(web)上显示。

我有这个json文件:

ping:{ 
     _id: 58516fc32aeffd103cdda179,
     jurusan: 'IPA',
     matapelajaran: 'Fisika',
     soal: 'agae',
     jawabana: 'hjg',
     jawabanb: 'h',
     jawabanc: 'hbh',
     jawaband: 'hbh',
     jawabane: 'h',
     kuncijawaban: 'hb',
     __v: 0 
},
{ 
    _id: 585a95167467c5185e2f2ee9,
    jurusan: 'IPA',
    matapelajaran: 'Fisika',
    soal: 'agega',
    jawabana: 'hjkbkjb',
    jawabanb: 'kjbkjb',
    jawabanc: 'kjbkjb',
    jawaband: 'kjbkjb',
    jawabane: 'kjbkbkj',
    kuncijawaban: 'kjbk',
    __v: 0 
}

1 个答案:

答案 0 :(得分:1)

您可以执行单个请求以匹配_id$in的列表:

var b = det.map(function(h) {

    Soal.find("_id": {
        $in: h.id_soal
    }, function(err, solArray) {
        if (err) {
            console.log(err);
        } else {
            res.render('ujian/viewDetail', {
                ujian: iduji,
                detail: det,
                soal: solArray,
                title: 'Lihat form ujian'
            });
        }
    });
});