2016-04-05 5 views
0

Ich habe Heroku verwendet, um meine Mungo-App zu implementieren, während das folgende Aggregat korrekte Daten auf localhost mit lokalen Mongo-Server zurückgibt, gibt es leere Ergebnis auf Heroku-Server mit Mongolab verwendet Datenbank dort handhaben. Hier

ist Abfrage selbst:

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

Hier Benutzer und Projekte Schema:

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

Anschluss an mongolab Server richtig konfiguriert ist und funktioniert, konnte ich Benutzer und Projekt-Instanz erstellen dort .

Ich denke, dass der Kern eines Problems ist, dass Dokument-ID wie dies in meinem localhost aussieht:

"_id" : ObjectId("56f1ace9e72b71643070e9a0") 

Und wie dies in mongolab:

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

Vielen Dank für jede Hilfe im Voraus)

Antwort

0

Schließlich kam ich mit dieser Alternative auf, die mit den aktuellen MongoLab funktioniert:

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

Weitere Informationen darüber, wie sie aussehen here gearbeitet.

Verwandte Themen