2016-04-05 6 views
0

herokuを使用してmongooseアプリケーションをデプロイしましたが、次の集計ではローカルmongoサーバーが稼働しているlocalhostで適切なデータを返します。データベースをそこで扱います。ここで

は、クエリ自体である:

ここ
let projects = this.models.Project.aggregate(
[ 
    { 
     $lookup: {from: 'users', localField: 'creator', foreignField: '_id', as: 'creator'} 
    }, 

    { $unwind : "$creator" }, 

    { 
     $project: { 
      name: 1, 
      updated: { $dateToString: { format: "%Y-%m-%d", date: "$updated" } }, 
      creator: 1, 
      description: 1 
     } 
    } 
] 
) 
.exec((err, projects) => { 
console.log("fetched projects is this:", projects) 
res.send(projects); 
}); 

ユーザーとプロジェクトスキーマです:サーバが適切に設定されており、作業、私はそこにユーザーとプロジェクトのインスタンスを作成することができましたmongolabする

let userSchema = new Schema({ 
     _id: Schema.Types.ObjectId, 
     username: String, 
     password: String, 
     email: String, 
     gender: String, 
     address: String 
    }); 

    let projectSchema = new Schema({ 
     name: String, 
     updated: { type: Date, default: Date.now }, 
     creator: {type: Schema.Types.ObjectId, ref: 'User'}, 
     description: String, 
     issues: [{type: Schema.Types.ObjectId, ref: 'Issue'}] 
    }); 

接続。

私は、問題の核心は、その文書のidは私のローカルホストで次のようになりますだと思い:

"_id" : ObjectId("56f1ace9e72b71643070e9a0") 

そしてmongolabで、次のように:事前に任意の助け

"_id": { 
    "$oid": "57030f0972365f0300c56c88" 
} 

おかげで)

答えて

0

結局私は、現在のMongoLabで動作します。この代替を思い付いた:それは一見hereを働いていた方法についての詳細情報については

resources.app.get('/projectsItems', (req, res) => { 
    let projects = this.models.Project.aggregate(
     [ 
      { 
       $project: { 
        name: 1, 
        updated: { $dateToString: { format: "%Y-%m-%d", date: "$updated" } }, 
        creator: 1, 
        description: 1 
       } 
      } 
     ] 
    ) 
    .exec((err, projects) => { 
     this.models.Project.populate(projects, {path: "creator"}, (err, projects) => { 
      console.log("fetched projects is this:", projects) 
      res.send(projects); 
     }); 
    }); 
}); 

関連する問題