2011-12-03 1 views
1

영화와 장르를 얻으려고 시도하지만 장르 배열에 장르 "스릴러"가 포함 된 기록을 남기지 마십시오.Freebase MQL - 배열 요소의 값이 있으면 상위 개체를 표시하지 않습니까?

"스릴러"에 대한 장르 키를 무시할뿐만 아니라 전체 영화 결과를 스켈치로 처리하는 방법은 무엇입니까? 현재 쿼리로 스릴러는 장르 배열에서 제거되지만 부모 개체 (영화)는 계속 표시됩니다. 내 자신의 질문에 대답 http://tinyurl.com/d2g54lj

[{ 
    'type':'/film/film', 
    'limit':5, 
    'name':null, 
    '/film/film/genre': [], 
    '/film/film/genre!=': "Thriller", 
}]​ 

답변

1

제공 대답은 정확하지만 너무 쿼리에 다른 물건을 변경합니다. 다음은 원래 검색어와 직접적으로 같습니다.

중요한 부분은 "선택 사항": "금지됨"입니다. 사용 된 기본 속성은 "name"이지만 하위 절을 사용할 때 명시 적으로 지정해야합니다 ("선택적"키워드를 지정할 수 있음). @kook처럼 이름 대신 ids를 사용하는 것이 실제로 더 안정적이기 때문에 개선되었지만 사람들이 깨진 쿼리를 수정하는 데 필요한 최소한을 볼 수 있기를 바랍니다.

"type": "/ film/film"이 포함되어 있기 때문에 속성 이름을 "/ film/film/genre"에서 "genre"로 줄여서 사용할 수 있습니다 (예 :/type/object를// type/object/name).

0

:

여기에 내 현재 쿼리 편집기에서 정밀 검사입니다.

:과 같이, '금지'로 | "="(한) 연산자

그래서 트릭은 != (하지만) 연산자를 사용하지, 실제로 그것의 머리에 뒤집어과를 사용하는 것입니다 다음 게시물에
[{ 
    'type':'/film/film', 
    'limit':5, 
    'name':null, 
    '/film/film/genre': [{ 
    "id":  null, 
    "optional": true 
    }], 
    "forbid:/film/film/genre": { 
    "id|=": [ 
     "/en/thriller", 
     "/en/slapstick" 
    ], 
    "optional": "forbidden" 
    } 
}]​ 

감사 :

Freebase query - exclusion of certain values

+0

아무도 잘못 인도하지 않았는지 확인하기 위해 중요한 부분은 "선택 사항": "금지됨"이 아니라 "금지됨 :"입니다. 이것은 JSON이 중복 사전 키를 허용하지 않기 때문에 사용되는 임의의 레이블입니다. "foo :"또는 "f :"또는 "x :"또는 콜론 앞에있는 다른 것일 수 있습니다. –