2013-10-15 4 views
0

몽구스와 익스프레스로 이력서 작성 앱을 만들고 있습니다. 나는 교육과 직장 경험이 모두 자신의 컬렉션에 있도록 내 모델을 설정했습니다. 이것과 비슷한 :여러 컬렉션에서 정보 검색 몽구스

"degree" : "BA", 
"major" : "Econ", 
"minor" : "Bus. Admin", 
"startDate" : ISODate("2013-12-31T00:00:00Z"), 
"endDate" : ISODate("2013-01-01T00:00:00Z"), 
"user" : "[email protected]", 
"created" : ISODate("2013-10-15T19:32:09.357Z"), 
"_id" : ObjectId("525d9839ddc8bf7855000001"), 
"school" : { 
    "name" : "university of alabama", 
    "loc" : "austin, tx" 
}, 
"__v" : 0 

"user"값에 User 모델의 _id에 대한 참조가 있습니다. 내 사용자 모델과 같이 보입니다 :

var schema = mongoose.Schema({ 
_id: {type: String, lowercase: true, trim: true, validate: validEmail } 
, name: { first: String, last: String} 
, salt: {type: String, required: true} 
, hash: {type: String, required: true} 
, edu: [{type: String, ref: 'Education'}] }); 

내가 아무것도 발견 아니에요 교육 모델 정보 내 사용자 모델의 에듀 부분을 채울 때.

내 질문은 이것이다 :

var query = User.findById(user) 
    .populate('edu'); 

내가보기에 모두에서 정보를 보낼 수 있도록 어떻게 내가 제대로 내 사용자 모델은 교육 모델에 대한 참조를 만들 수있는 것? 그런 분야에 채울 수 있을까요?

조언이 도움이 될 것입니다. 나는 문서를 수색하고, Google을 시도하고, 뜻밖의 일을 시도한다.

감사합니다.

답변

0

populate이 제대로 작동하려면 mongoose.Schema.Types.ObjectId 유형을 사용해야합니다.

var schema = mongoose.Schema({ 
_id: {type: String, lowercase: true, trim: true, validate: validEmail } 
, name: {first: String, last: String} 
, salt: {type: String, required: true} 
, hash: {type: String, required: true} 
, edu: [{type: mongoose.Schema.Types.ObjectId, ref: 'Education'}] }); 

사이드 참고 : 자동으로 얻을하고 이메일 안된다으로

  • 당신은 _id를 정의 할 필요가 없습니다. 이를 위해 별도의 전자 메일 필드를 사용하십시오.
+0

도움 주셔서 감사합니다. 나는 실제로 그것을 알아 냈다. 내가 문제가있는 부분은 edu doc의 참조를 사용자 문서에 저장하는 것이었지만, .save() 함수를 사용하여 결국 끝내고 결국 내가하고 싶은 일을하게되었다. 그래도 도움을 주셔서 다시 한번 감사드립니다. –

관련 문제