2016-07-23 2 views
0

Ich versuche, ein bestimmtes Objekt in einem Array mit Mungo zurückzugeben. Mein Dokument ist wie folgt:Suchen Sie ein bestimmtes Objekt in Array mit Mongoose und Node.js

{ 
"_id": { 
    "$oid": "577a9345ba1e2a1100624be7" 
}, 
"name": "John Doe", 
"password": "$2a$10$NzqAqxTRy8XLCHG8h3Q7IOLBSFCfBJ7R5JqHy1XHHYN.1h074bWJK", 
"__v": 0, 
"birthDate": "14.07.2016", 
"academic": [ 
    { 
     "about": "asdfasdf", 
     "to": "asdf", 
     "from": "asfdasdf", 
     "institute": "asdfasdf", 
     "qualification": "asdfasdf", 
     "_id": { 
      "$oid": "579111b3e68d489f1ff8b6dc" 
     } 
    } 
] 

}

ich, dass akademische Objekt in der Liste zurückkehren möchten. Ich bin vorbei mein Code im Institut Namen in die Route ist wie folgt:

getAcademicInstituteByName: function(req, name, cb){ 
    User.findById(req.user.id, function (err, user) { 
     if(err) throw err; 
     if(user){ 
      academic = user.academic.institute(name); 
      return cb(null, academic); 
     } 
    }); 

Aber das funktioniert nicht, da ich eine Störung erhalten user.academic.institute sagte, ist keine Funktion. Jede Hilfe würde sehr geschätzt werden

+0

versuchen Sie den Wert des Instituts zu erhalten? "asdfasdf"? –

+0

Hallo, ich versuche, das gesamte Objekt in diesem Array zurückzugeben, indem ich den Wert des Instituts "asdfasdf" übergebe. –

Antwort

1

user.academic.institute ist ein Array, so dass Sie regelmäßige Array-Operationen verwenden, um den Eintrag, den Sie interessiert sind zu finden:

var academic = user.academic.institute.filter(i => i.institute === name) 
             .pop(); 
return cb(null, academic); 
0
academic = user.academic.institute; 

sollte dies funktionieren, obwohl ich es nicht getestet habe.

Verwandte Themen