2016-08-10 3 views
0

Liebe Gemeinde Stackoverflow,kann ich nicht richtigen Werte abfragt verschachtelten Arrays mit mongodb, Mungo und NodeJS

ich in der Regel keine Make-Beiträge hier, aber in dieser Zeit finde ich mich fragen, warum nicht ?, nach 2 Stunden, ohne sich eine Lösung.

Dieser ist ziemlich einfach, beinhaltet aber ein bestimmtes JSON-Modell, Mungo, Mongodb und Nodejs.

Jetzt ist das Problem, dass ich versuche, die Daten für die user_ppal_id: 1 und die exam_design_id: 1, die Suche der user_ppal_id erfolgreich, aber die exam_design_id, die in ein geschachteltes Array ist immer wieder auf mich zurück Wert 1 und 2 (und ı'm 1 die exam_design_id durch Parameterübergabe) ...

das ist mein Modell, Meine NodeJS Rest Methode und wie ich bin mit Mungo, NodeJS und MongoDB, Meine moongose ​​Modell, Eine bessere Sicht auf das Modell von Umongo Ide:

SEE THE IMAGE HERE BECAUSE I AM NEW IN STACKOVERFLOW

Die ganze Struktur funktioniert, aber die Daten aus dem Ergebnis ist nicht das, was ich erwartet habe. Sie können die Antwort von dieser Ruhe Service überprüfen, indem Sie einfach diese URL klicken: http://207.244.75.230:8000/dyntestreports/getExamReport?idUserPpal=1&idExamDesign=1

In der Antwort bin ich für Werte, die die exam_design_id Daten immer 1 und 2, wenn i 1.

Eigentlich habe ich versucht, nur den Wert übergeben mit den folgenden mongo-Abfragen und ich nicht erfolgreich sein:

1) ExamReportByUser.find ({ 'user_ppal_id': userPpalId, 'exams_created': {$ elemMatch: { 'exam_design_id': {$ eq: examDesignId}}}}

2) ExamReportByUser.find ({'user_ppal_id': userPpalId, 'examinations_created.0.exam_design_id': exampleDesignId}

In diesem Moment weiß ich nicht, was ich falsch mache, sogar von einer mongo console Abfrage kann ich nicht bekommen es funktioniert nur für exam_design_id = 1 Daten.

Ich bin sicher, es könnte ein einfacher Fehler sein, aber ich sehe es nicht in diesem Moment.

Ich hoffe wirklich, dass Sie mir helfen können Jungs. Danke im Voraus! Einen schönen Tag noch.

+0

es gefunden, aber ich warte auf Kommentare! Meine Antwort ist unten ... Danke. – luiseliberal

Antwort

0

Mein schlechtes! Ich habe gerade die Lösung gefunden ... Und ich poste es hier für irgendjemanden, der die gleichen Zweifel hatte ... Der Code, der die Daten abfragt, sollte so sein (es war nur Schlüsselsyntax, einfacher Mongo):

ExamReportByUser. find ({'user_ppal_id': userPpalId}, {'examples_created': {$ elemMatch: {'exam_design_id': examDesignId}}}, 'id user_ppal_id exams_created exam_design_id user_submitted_exam', Funktion (err, result) {if (err) zurück console.log (err); return res.send (result);}); }; Jetzt

ı'm die Daten von Benutzer immer 1 und exam_design 1.

Ich werde nicht wählen dies als eine Antwort, für die Spezialisten warten;)

Verwandte Themen