因此,假设我们在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个)实际上有))。
如何克服这个?它是在文档中吗?
谢谢!
答案 0 :(得分:0)
从文档中看起来并不是很清楚,但看起来你需要自己更新项目中的关系。使用DataStore.get获取项目。然后从任务数组中删除该任务,然后使用DataStore.update更新项目。
如果需要查找引用该任务的项目,可以使用该关系构建查询 - 这来自Relational Data,Fetching,Queries区域。
Kinvey不支持查询相关对象的查询 属性。但是,您可以构造查询以检索所有 与特定实体有关系的实体。这个完成了 通过查询引用的_id字段。