2013-09-03 4 views
0

나는 calorie counter에서 일해 왔고, 나는 천천히 나의 MQL 글쓰기를 진행하고있다. 내가 현재 가지고있는 문제는 /common/topic/description 속성에있는 래서 피 자체를 업데이트하는 것입니다. 이 실행에 성공Freebase에서 고유하지 않은 속성을 업데이트하려면 어떻게해야합니까?

[{ 
    id: recipeId, // previously retrieved 
    '/common/topic/description': { 
    connect: 'replace', 
    value: $('#description textarea').val(), 
    lang: '/lang/en' 
    } 
}] 

하지만 실행 후 나는 query (another) 나는 오류 얻을 때 :

내가 현재 사용하고있는 쿼리는

{ 
    "domain": "global", 
    "reason": "invalid", 
    "message": "Unique query may have at most one result. Got 2", 
    "locationType": "other", 
    "location": "/common/topic/description" 
} 

을에 따르면 the documentation, connect: replace은 고유 속성에 대한 업데이트 및 고유하지 않은 속성에 대한 삽입을 수행합니다. 가치가 삽입 되었기 때문에 나는 그것을 얻고 있습니까?

오류를 방지하려면 다른 값을 제거해야합니까? 그것을 제거하기 위해 기존 가치를 알아야합니까?

{ 
    id: recipeId, 
    '/common/topic/description': { 
    connect: 'delete', 
    value: 'Value currently stored', 
    lang: '/lang/en' 
    } 
} 

답변

1

이 문제는 고유하지 않은 속성을 업데이트하는 것과 아무런 관련이 없습니다. 읽은 쿼리가 문제입니다. 실패한 쿼리를 인용하지 않았지만 "location": "/common/topic/description"이라는 오류 메시지 부분이 힌트입니다. 이 주제에는 두 가지 설명이 있는데 하나는 비어 있고 하나는 비어 있지만 사용자는 쿼리에서 배열 표기법을 사용하지 않았습니다. 어떻게 항목을 검색하는 나를 보여주는

[{ 
    "id": "/m/0wh83sg", 
    "/food/recipe/ingredients": [{ 
    "id": null, 
    "ingredient": { 
     "id": null, 
     "name": null, 
     "/food/food/energy": null, 
     "/common/topic/image": { 
     "id": null, 
     "optional": true, 
     "limit": 1 
     }, 
     "optional": true 
    }, 
    "unit": { 
     "id": null, 
     "name": null, 
     "optional": true 
    }, 
    "quantity": null, 
    "notes": null 
    }], 
    "/common/topic/description": [{}] 
}] 
+0

감사합니다,하지만 누군가가 조리법을 업데이트 할 때 나는 새 항목을 만들하지 않습니다

이 작동합니다. 업데이트를하려면 이전 항목을 제거해야합니까? – Will

+0

"항목"은이 문맥에서'/ common/topic/description'을 의미합니까? description 속성에는 여러 값이 허용되므로 예를 들어 더 이상 필요없는 더 이상 사용되지 않는 값을 삭제해야합니다. –