2014-11-05 2 views
0

kinvey에 프로젝트 및 작업 엔티티가 있다고 가정하면 각 엔티티는 자신의 컬렉션 (프로젝트 및 작업)에 저장됩니다. 이 엔터티를 저장할 때 '관계'를 정의 했으므로 프로젝트와 관련된 작업에 쉽게 액세스 할 수 있습니다.Kinvey/Angular 관계로 엔티티를 삭제하는 방법

// Save the Project, and save its Task as separate entity. 
var promise = $kinvey.DataStore.save('project', project, { 
    relations : { task: 'tasks' } 
}); 

하는 것은 쉬웠다 그리고 워드 프로세서에있어 그. 그러나이 같은 작업을 삭제할 때 :

someService.deleteApplication = function(task){ 
      return $kinvey.DataStore.destroy('tasks', task._id); 
     }; 

그것은 프로젝트의 실체가 말한다 작업 컬렉션에서 항목 만 수집 여전히이 경우 (삭제 작업에 대한 참조를 보유하고 프로젝트에서 항목이 삭제 3 가지 작업 (실제로 가지고있는 것보다 1 가지 더 많음).

어떻게 극복 할 수 있습니까? 문서에 있나요?

감사!

답변

0

문서에서는 매우 명확하지 않지만 프로젝트의 관계를 직접 업데이트해야하는 것처럼 보입니다. DataStore.get을 사용하여 프로젝트를 가져옵니다. 그런 다음 작업 배열에서 해당 작업을 제거한 다음 DataStore.update를 사용하여 프로젝트를 업데이트합니다.

해당 작업을 참조하는 프로젝트를 찾아야하는 경우 관계를 사용하여 쿼리를 구성 할 수 있습니다. 이는 Relational Data에서 가져 오기, 쿼리 영역을 가져 오는 것입니다.

Kinvey는 관련 개체의 속성과 연결된 쿼리를 지원하지 않습니다. 그러나 쿼리를 구성하여 특정 엔터티와 관계가있는 모든 엔터티를 검색 할 수 있습니다. 참조의 _id 필드를 쿼리하여 을 수행합니다.

관련 문제