2016-08-26 7 views
-1

私は2つのコレクションを1つの_id、タイトル、オプション、結果、フィードバックを格納する質問があり、2番目は子供の子供です私は店舗question_id、スコアを持っています。そして私は質問のコレクションから_idをフィルターに掛けました。私はこれをどうやって行うのか分かりませんが、これに対してクエリを設定することは可能ですか?次回、質問集から質問を見つけたら、それはフィルターされた質問を送ります。 2番目のコレクションの子qustion_idと同じではない質問コレクションからその質問のみを返します。ノードjsを使用してmongodbのクエリフィルタ

これは、私が店のご質問、_idタイトルオプション結果のフィードバック

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

これは私が店未遂question_idを持っており、これではありません

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

スコア私の第二のコレクションですを持っている私の最初のコレクションですちょうど私は例を作成するだけです

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

答えて

0

主な問題は、 nceptualでは、RDBMSスタイルのドキュメントストアであるmongodbを使用しようとしています。コミュニティの圧力の下で、Mondoは最新バージョンでは最小限の結合機能を追加しましたが、リレーショナルDBにはなりません。

このようなクエリを実行する良い方法はありません。ドキュメントストアの背後にあるアイデアは簡単です。ドキュメントのコレクションがあり、このコレクションとこのコレクションのみをクエリします。コレクション間のすべてのリンクは「仮想」であり、コードロジックによってのみ提供され、DBエンジンからのサポートはありません。

idsのクエリの最初のコレクション(適切な投影で、IDのみを取得する)、いくつかの配列への応答を格納してから、この配列を使用して他のコレクションへの2番目のクエリを実行します。

+0

返信いただきありがとうございます。しかし、クエリ経由で値を取得するためのモジュールや技術があります –

関連する問題