2012-03-06 12 views
2

たとえば、2つのコレクションのコメントとユーザーがあるとします。コメントにはユーザー名とコメントが含まれ、ユーザーにはユーザー名とアバターがあります。私はまた、アバターを表示するコメントを取得するとき、私はどのように2つのコレクションを照会する必要がありますか?私の最初の考えは、すべてのコメントを取得してから、ユーザー名を繰り返してユーザー・コレクションに問い合せて、アバターを取得することでした。私はこれを違うことができますか? nodejsとmongooseを使用するmongodbの複数のコレクションからデータを取得する

答えて

3

Populateは、あなたが探しているものと思われる たObjectIdがd)(今私達のデータベース内のコレクション内の他のドキュメントを参照することができますし、取り込むこと照会するとき。例を参考にしてください。

var mongoose = require('mongoose') 
, Schema = mongoose.Schema 

var PersonSchema = new Schema({ 
    name : String 
    , age  : Number 
    , stories : [{ type: Schema.ObjectId, ref: 'Story' }] 
}); 

var StorySchema = new Schema({ 
    _creator : { type: Schema.ObjectId, ref: 'Person' } 
    , title : String 
    , fans  : [{ type: Schema.ObjectId, ref: 'Person' }] 
}); 

var Story = mongoose.model('Story', StorySchema); 
var Person = mongoose.model('Person', PersonSchema); 
+0

クエリ結果はどのように見えますか? –

+0

あなたは私の人生を救った! :D – Sparw

3

私がコメントすることができたら、これは完全な答えではないかもしれません。しかし、私のためには、 Database ReferencesMongoDB Data Modeling and Railsは一般的な話題のかなり良い説明です。

しかし、間違いなく、私が送った最初のリンクで議論されていることが、あなたが書いていることです。後世のために、ここでいくつかの貼り付け

http://mongoosejs.com/docs/populate.html

関連する問題