0

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

// 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 个))。

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

谢谢!

4

1 回答 1

0

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

如果您需要查找引用该任务的项目,您可以使用关系构造一个查询 - 这来自关系数据、获取、查询区域。

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

于 2014-11-14T01:42:47.487 回答