2012-03-06 2 views
2

예를 들어 콜렉션에 2 개의 콜렉션이 있다고 가정 해 보겠습니다. 주석과 사용자가 포함됩니다.이 주석에는 사용자 이름과 주석이 포함되며 사용자에게는 사용자 이름과 아바타가 있습니다. 덧글을 가져올 때 아바타를 표시하고 싶은데 두 컬렉션을 어떻게 쿼리해야합니까? 내 첫 번째 생각은 모든 주석을 얻은 다음 사용자 이름을 반복하고 사용자 컬렉션을 쿼리하여 아바타를 가져 오는 것입니다. 이 일을 다르게 할 수 있습니까? nodejs와 mongoose 사용하기mongodb의 여러 콜렉션에서 데이터 가져 오기

답변

3

Populate 당신을 위해 무엇을 찾고있는 것 같다 쿼리 할 때. 다음은 유용한 예입니다.

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

당신은 내 생명을 구했어 !! :디 – Sparw

3

내가 전체적인 대답이 아닐지도 모르겠다. 하지만 나를 위해 Database ReferencesMongoDB Data Modeling and Rails은 일반적으로 주제에 대한 설명이 좋습니다.

하지만 확실히 설명하는 것은 내가 보낸 첫 번째 링크에서 논의 된 내용입니다. D) ( 하며 Object는 지금 우리의 데이터베이스 내 컬렉션의 다른 문서를 참조 할 수 있습니다 채울 수 :

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

붙여 넣기 여기 후손에 대한 몇 가지를 :

관련 문제