2017-09-23 2 views
0

ich bin mit einem Problem in Node.js konfrontiert, wo ich versuche, Schema zu füllen. Ich habe zwei Schemas und eines ist die Referenz von "UserSchema", ich füge meinen Code hier hinzu bitte jemand hilft mir bei diesem Problem. Dieser Code funktioniert nur, wenn ich die „.populate (‚user.email‘)“Node.js Populate funktioniert nicht mit Code

Teil entfernen
Student.find({'Name': req.studentInfo.Name}) 
.populate('user.email').exec(function(err, numberOfPendingRequests){ 
    if(err){ 
    return next(err); 
    }else{ 
    console.log('\n\n\nFound unapproved requests\n\n\n'); 
    console.log(numberOfPendingRequests); 
    req.studentInfo.unapprovedRequests = numberOfPendingRequests; 
    return next(); 
    } 
}) 

// user.js 
var userSchema = mongoose.Schema({ 

    profile_id : String, 
    token  : String, 
    email  : String, 
    name   : String, 
    provider  : String, 
    detailSubmited: { 
     type: Boolean, 
     default: false 
    } 

}); 

module.exports = mongoose.model('User', userSchema); 

// student.js 

var studentSchema = mongoose.Schema({ 

collegeName : String, 
courseName : String, 
courseYear : String, 
user   : { 
    type: mongoose.Schema.Types.ObjectId, 
    ref : User 
} 
}); 

module.exports = mongoose.model('Student', studentSchema); 
+0

Sind Sie sicher, den Benutzer '_id' dem Schüler zuzuordnen, wenn Sie das erstellen? Können Sie mir Ihre Erstellungsmethode zeigen? –

+0

var newStudent = new Student(); newStudent.collegeName = req.body.collegeName; newStudent.courseName = req.body.courseName; newStudent.courseYear = req.body.courseYear; newStudent.user = req.user._id; – ankitbaid11326

Antwort

0

Wenn Sie Ihr bevölkert Dokument nur bestimmte Felder zurückkehren, die Feldnamen als zweites Argument der bevöl passieren Funktion. Gefällt mir:

Student.find({'Name': req.studentInfo.Name}).populate('user', 'email').exec(function(err, numberOfPendingRequests) {...} 

Ich hoffe, das hilft.

+0

was Sie sagen, ist richtig, aber die Sache ist sogar ich versuche, anderen Code, der in Mungo-Dokumentation für die Bevölkerung in diesem Link zur Verfügung gestellt wird "http://mongoosejs.com/docs/populate.html" funktioniert nicht. das gibt auch einen Fehler. aus docs code es ist in der Lage, Daten in DB zu speichern, aber nicht in der Lage Daten zu füllen – ankitbaid11326

+0

Wie wäre es mit diesem Teil, 'Student.find ({'Name': req.studentInfo.Name})' '? Soll das nicht ** Name ** sein? Treten bestimmte Fehler auf oder ist das Dokument nicht nur ausgefüllt? –