2014-10-17 12 views
0

유사한 스레드 @Mongoose variable key name이 있습니다. 그러나 그는 이것을 해결하는 대신 다른 방법을 사용합니다. 다른 방법은 내 제목의 OR 부분입니다.몽구스 - 다른 스키마에서 자식의 ObjectID 정의

편집 -이 섹션을 무시하고 현재 대체 기능을 사용 중입니다. 이제는 다른 곳에서 자식의 객체 ID를 참조하는 문제가 있습니다.

selections: [{ 
    4433d18d31f3775756ac2a70: "542e91aa31f3775756abccda"}, 
    {4433d18d31f3775756ac2a71: "542e916c31f3775756abccd8"}, 
    {4433d18d31f3775756ac2a72: "542e934231f3775756abccdb" 
}] 

다음과 같이 내 스키마가 현재 : 본질적으로 말하는 방법은 장소 <something>에서

selections: { 
    <something>: { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: 'Selection' 
    } 
} 

"내가 여기서 무엇을 걱정하지 않는다

나는 다음과 같은 배열을 "? 이 인터넷을 수색 후 가능하지 않는 것으로

양자 택일

는, 나는 다음과 같은 스키마를 가질 수

selections: { 
    pid: { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: 'Competition.CHILD' 
    } 
    selection: { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: 'Selection' 
    } 
} 

을 그러나 여기에서 문제는 <something> 내부 자식 스키마입니다 OBJECTID가 사용되는 것입니다 Objective ID에 대해 말하는 방법을 찾을 수 없습니다.

어떤 조언이나 도움을 주시면 감사하겠습니다. 이상적으로는 첫 번째 솔루션을 선호하지만 가능하지 않을 수도 있음을 알고 있습니다. 감사!

답변

1

옵션 (그러나 고정) 키를 사용하여 객체의 배열을 사용하여

selections: [{ 
    selection: {type: ObjectId, ref: 'Selection'}, 
    child: {type: ObjectId, ref: 'Competition.CHILD'} 
}] 

이 등 더 나은 쿼리를 사용 몽구스 인구를 할 수있게된다

+0

좋아요, 감사합니다 많은 간단 보인다 이 방법. 내 질문의 두 번째 부분으로, 어떻게 ObjectID를 자식의 ObjectID로 정의 할 수 있습니까? 예 : 내'Competition' 스키마는'selChild : [selChildSchema]'항목을 가지고 있고, 그 자식의 ObjectId는 selChild._id가 될 것입니다. – Gary

+0

나는 단지'ref : 'Competition.selChild'를 시도 할 것이지만 나는 그런 설정을 직접 사용하지 않았기 때문에 이것이 몽구스 집단과 실제로 작동 할 것인지에 대해서는 확신 할 수 없다. (이것은'ref를 지정하는 유일한 목적이다 'AFAIK). –

+0

'Competition.selChild'가 작동하지 않았지만 실제로 볼 수있는 것에서 만 인구 유입에 사용되었으므로 실제로 영향을주지 않아야합니다. 감사. – Gary

관련 문제