Отображение данных из вложенных узлов запроса в виде мопса - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь создать портал, где пользователи будут загружать фотографии и соответствующие раскрытия (с информацией о загруженных фотографиях). Пользователи будут отправлять раскрытия и фотографии для просмотра. Схема обзора приведена ниже:

router.get('/reviews', function(req, res) {
  var reviewMap = {};
  var disclosureMap = {};
  var photoMap = {};

  Review.find({}, function(err, reviews) {
    if(err) throw err;

    reviews.forEach(function(review) {    // Iterate over all reviews

      reviewMap[review._id] = review;
      Disclosure.findById(review.disc_id, function(err, disclosure){  // Find disclosure id of that review
        if(err) throw err;
        // console.log(disclosure)  // This prints the whole disclosure properly
        disclosureMap[review._id] = disclosure;
      });

      Photo.find({
        '_id': { $in: review.doc_id
              }
        }, function(err, docs){
          //console.log(docs);            // This prints out details about the pics properly
          photoMap[review._id] = docs;
        });
    });
    //console.log(reviewMap);
    for(var index in reviewMap) {
      console.log(index);
      console.log(disclosureMap[index]);
      console.log(photoMap[index]);
      console.log("Next");
    }
    res.render('reviews', { title: 'Photo Reviews', msg:req.query.msg,
      reviewlist: reviewMap})  ;
  });
});

Это печатает:

5be69b9ef365292b0ccf4067
undefined
undefined
Next
(node:4216) [DEP0079] DeprecationWarning: Custom inspection function on Objects
via .inspect() is deprecated

Схема обзора:

let reviewSchema = mongoose.Schema({

  ts:  { type: String },

  disc_id: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Disclosure',
  },
  doc_id: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Photos',
  }],

});

ОбзорКарта:

{ '5be69b9ef365292b0ccf4067':
   { _id: 5be69b9ef365292b0ccf4067,
     disc_id: 5be576add1c7b62438c804c7,
     ts: 'Sat Nov 10 2018 14:19:34 GMT+0530 (India Standard Time)',
     __v: 0,
     doc_id: [ 5be536fcb01fac1c4c94ae87, 5be536d0b01fac1c4c94ae86 ] } }

Мой вопрос заключается в том, как отобразить идентификатор обзора, идентификатор раскрытия и фотографии, загруженные для этого обзора, в форме мопса (res.render('review')). Я не могу отобразить фотографии, используя только doc_id в форме Pug, если я передаю только reviewList напрямую. Также было бы хорошо, если бы существовал метод для отображения данных из вложенных схем, используя только ObjectID из Схем.

Не могли бы вы указать мне правильное направление?

Спасибо, Prathamesh

...