2017-01-28 1 views
1

machen Ich möchte Daten von json Karte anzuzeigenNode.js json Karte von mongodb

diese

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

Ich habe try run meinen Code auszudrücken ich Daten von json zu trösten erhalten, aber nicht zeigt auf Express (Web).

und ich habe diese JSON-Datei:

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 
} 
+0

Ein Wort: Asynchronität – qqilihq

Antwort

1

Sie können eine einzelne Anfrage führen eine Liste von _id mit $in zum Spiel:

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' 
      }); 
     } 
    }); 
}); 
+0

thx, seine Arbeit für mich :) – user7482282