如何删除Kinvey / Angular中具有关系的实体

时间:2014-11-05 22:02:05

标签: angularjs kinvey

因此,假设我们在kinvey中有项目和任务实体,每个实体都存储在它自己的集合中(项目和任务)。保存这些实体时,我定义了“关系”,这样我就可以轻松地访问与项目相关的任务。

// 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个)实际上有))。

如何克服这个?它是在文档中吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

从文档中看起来并不是很清楚,但看起来你需要自己更新项目中的关系。使用DataStore.get获取项目。然后从任务数组中删除该任务,然后使用DataStore.update更新项目。

如果需要查找引用该任务的项目,可以使用该关系构建查询 - 这来自Relational Data,Fetching,Queries区域。

  

Kinvey不支持查询相关对象的查询   属性。但是,您可以构造查询以检索所有   与特定实体有关系的实体。这个完成了   通过查询引用的_id字段。