2014-12-01 1 views
3

나는 사용자에 대한 수집, 사용자의 캘린더를 가지고 (사용자 : 1 개 관계에 있지만 모든 사용자가 달력 소유 : 달력 1가) :문서 속성의 명시 적 목록없이 투영을 만드는 방법이 있습니까?

users: {"name":"John","role":admin [more fields]} 
calendars: {"color":"blue",owner: "users/john"} 

내가 가진 문서를 반환했습니다를 :

{"name":"John","role":admin,[all fields from the users collection],calendar:cal} 

사용자 문서에서 속성을 나열하지 않고이를 수행 할 수있는 방법이 있습니까?

for cal in zcalendar 
    for user in zuser filter user._id == cal.owner 
return ... 

답변

2

MERGE 문서 기능을 사용할 수 있습니다. 같은 :

이 구조 반환
FOR cal IN zcalendar 
    FOR user IN zuser 
     FILTER user._id == cal.owner 
     LET calDoc = { 
      'calendar': cal 
     } 
     RETURN MERGE(user, calDoc) 

: 나는 하위 문서로하지만 함께 calDoc를 반환하고 싶습니다

[ 
    { 
    "_id": "...", 
    "_rev": "...", 
    "_key": "...", 
    "name": "John", 
    "role": "admin", 
    "calendar": { 
     "_id": "...", 
     "_rev": "...", 
     "_key": "...", 
     "color": "blue", 
     "owner": "..." 
    } 
    } 
] 
+0

을'MERGE'이 불가능합니다. – legikaloz

+0

예제에서 @legikaloz calDoc은 사용자 문서에서 사용자가 질문에 올린 것으로 보이는 임베디드 달력 필드로 반환됩니다. MERGE가 예상대로 작동하지 않는 곳에서 정확한 쿼리를 제공 할 수 있습니까? – yojimbo87

+0

죄송합니다. 발견 된 cal 문서를 포함하는'LET' 표현식을 간과했습니다. 당신의 대답은 좋고, 받아 들여야합니다. – legikaloz