在本地但不在生产中工作:Mongo嵌套findOne

时间:2017-07-01 14:34:34

标签: mongodb express hapijs

我有3个集合:trips, moments, media_objects

每个trip都有时间。这次旅行拥有一系列moment_ids。 每个moment都有一个media_object

客户需要一个完整的旅行对象,其中包含已有的时刻,而这些时刻需要在其中包含媒体对象,而不仅仅是持有ID。

我编写的代码在本地启动时为我本地工作,但是一旦我将其推送到生产(AWS桶),它们的工作方式就不一样了。旅行中的时刻确实作为对象存在,但瞬间的media_object只是ID。这就好像嵌套只在生产中处于一个水平。

以下是我的代码:

tripsCollection.findOne({id: tripID }, (err, trip) => {                 

if (err) {
            reply (Boom.badRequest("Trip not found"));
            return
          }

 if (trip.user_id != request.headers.user_id) {
           reply (Boom.badRequest("You are not authorised to view this trip."));
           return
           }

 let fullTrip = trip;

 let momentsArray = [];

 trip.moment_ids.forEach((moment_id) => {

  // finds the moment based on moment_id
  momentsCollection.findOne({id: moment_id}, (err,moment) => {

  mediaObjectCollection.findOne({id: moment.media_object_id}, (err,mediaObject) => {

  moment.mediaObject = mediaObject;

  momentsArray.push(moment);
  // when all moment_ids are converted, return the full trip object
 if (trip.moment_ids.length === momentsArray.length) {
   fullTrip.moments = momentsArray;
   reply (fullTrip)
   return
}

return moment


  })

 })


});

});

在观察网络标签时,我看到在生产时,当我尝试打开相同的路线时,它甚至都不会调用API,例如domain.com/trip/22 适用于本地而非生产。

0 个答案:

没有答案