2015-01-28 1 views
0

나는 user와 pet의 스키마를 가지고있다. 사용자가 애완 동물을 몇 마리 가질 수 있습니다. 애완 동물이 속한 사용자 이름이 필요합니다.계층 적 모델에서 부모로부터 필드를 가져 오는 방법

var petSchema = new Schema({ 
    name: { type: String, required: true }, 
    user: { type: Schema.Types.ObjectId, ref: 'User', required: false }, 
}); 
var userSchema = new Schema({ 
    name  : { type: String, default: 'New User', required: true }, 
}); 

나는 시도 :

Pet.find({name:'koko'},"user user.name ", function(err,user){ 
    res.send(user); 
}); 

하지만 사용자 이름을하지 않습니다.

+2

당신은 가입하려고? 음, mongodb에는 조인이 없습니다. 애완 동물에 사용자 정보를 삽입하거나 클라이언트 측에서 자체 조인을 수행합니다. – joao

답변

2

당신은 populate 방법을 사용해야합니다

Pet 
.findOne({ .... }) 
.populate('user') 
.exec(function (err, pet) { 
    if (err) return handleError(err); 
    res.send(pet.user) 
}) 
관련 문제