2016-08-07 10 views
0

私は、最も効率的な方法で、他のコレクションへの参照を持っているものとそうでないものを見つけて読み込む方法を見つけようとしています。マングース効率的な検索と移入

例:

var collectionA={ 
       { 
       "topic":"TopicA", 
       "text";"TextA") 
       }, 
       { 
        "topic":"Topic1", 
        "text":"Text1"} 
       } 
       } 

var collectionB={ 
       { 
       "topic":"TopicB", 
       "text":"TextB" 
       "reference":["id","id"] 
       }, 
       { 
       "topic":"Topic2", 
       "text":"Text2" 
       "reference":[] 
       } 
       } 

と私は私がしたい文書を特定することを可能にする、次のように私は要求を持っている:

req.body={"topic":["TopicA","TopicB"]} 

関連する文書を見つけると、移入するための最も効率的な方法は何ですかできるだけ多くのデータベース呼び出しで、完全に入力された結果を提供します。

{"topic":"TopicA","text":"TextA"}, 
{"topic":"TopicB","text":"TextB","reference":[{populated document} 
{populated document}]}, 

私のようなものを使用しようとしています:

collections.find({"topic": $in req.body.top}, function(err,result){ 
    collections.populate(result,{path:'references'}, function (err,result){ 
//do something 
    }); 
}) 

は正しい軌道に乗って、このですか?

あなたのヘルプは大歓迎です。

答えて

0

マングースの他のドキュメントを参照するには、Populationを使用する必要があります。

idでトピックを参照する場合は、スキーマに次のようなものが必要です。{ type: Schema.Types.ObjectId, ref: 'collectionA' }

関連する問題