javascript - Node.js 从 mongodb 渲染 json 映射

标签 javascript json node.js mongodb

我想显示从json映射到express的数据

这是我的代码

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(网络)上显示。

我有这个 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 
}

最佳答案

您可以执行单个请求来将 _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'
            });
        }
    });
});

关于javascript - Node.js 从 mongodb 渲染 json 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41908387/

相关文章:

javascript - Node.js、wordpress、redis

javascript - 输出给了我 [object Object]

python - 如何使用python定期从弹性数据库中获取数据?

javascript - 我的机器人如何识别字符串中的第三个单词,然后重复该单词?

javascript - 使用 Promise 链接多个异步函数

javascript - 如何在 js/jQuery 中计算日期

javascript - get如何获取动态生成的值

php - json 的 symfony 3 规范器 - 格式化所有时间戳

javascript - 单击表格行时显示额外数据

node.js - Visual Studio 2017 Node.js 异常不起作用