2016-08-26 7 views
-1

Ich habe zwei Sammlung ist eine Frage, die speichert _id, Titel, Optionen, Ergebnis, Feedback und zweitens ist ein Kind in dem Kind, das ich Geschäft question_id, score. Und ich habe die _id aus Fragen Sammlung gefiltert. Ich weiß nicht, wie ich das mache, ist es möglich, können wir die Abfrage dafür setzen. so dass das nächste Mal, wenn ich die Frage von Fragen Sammlung finde, sendet es gefilterte Frage. Mittel Gibt nur die Frage aus der Fragensammlung zurück, deren ID nicht mit der zweiten Sammlungsgruppe qustion_id identisch ist.Abfrage Filter für Mongodb mit Knoten js

Dies ist meine erste Kollektion, wo ich Speicher Fragen haben, _id Titel-Option Ergebnis Feedback

 _id:{type:String}, 
     title:{type:String, required:true}, 
     options:{type:Array, required:true}, 
     result:{type:Array, required:true}, 
     feedback:{type:String} 

Dies ist meine zweite Kollektion, wo ich speichern versucht question_id haben und

quiz:[ 
     { 
      questionId:{ 
      type:mongoose.Schema.Types.ObjectId, 
      ref: 'Question', 
      index: true 
        }, 
      score:{type:Number}, 
      time:{type:String} 
      } 
      ] 

Diese Punktzahl ist nicht genau ich erstelle nur ein Beispiel

var query = {} 
firstcollection.find($and[{_id:},{secondcollection question_id:}]},function(err, data){ 

so that filter data means filter _id will store in data. 
and I send this data to the frontend 

res.send(data); 
}); 

Antwort

0

Das Hauptproblem ist co Auffällig ist, dass Sie versuchen, mit mongodb zu arbeiten, einem Dokumentspeicher im RDBMS-Stil. Unter dem Druck der Gemeinschaft hat Mondo in der letzten Version einige minimale Join-Funktionen hinzugefügt, aber es macht keine relationale DB.

Es gibt keine gute Möglichkeit, eine solche Abfrage durchzuführen. Die Idee hinter dem Dokumentenspeicher ist einfach - Sie haben eine Sammlung von Dokumenten und Sie fragen diese Sammlung und nur diese Sammlung ab. Alle Verknüpfungen zwischen Sammlungen sind "virtuell" und werden nur von Codelogik bereitgestellt, ohne Unterstützung durch die DB-Engine.

So alles, was Sie mit Mongo tun können, ist: Abfrage der ersten Sammlung für IDs (mit entsprechender Projektion, Ids nur abrufen), speichern Sie die Antwort auf ein Array und dann zweite Abfrage an andere Sammlung mit diesem Array.

+0

danke für die Antwort Herr, aber es gibt irgendein Modul oder so Technik, Wert über Abfrage zu holen –

Verwandte Themen