当前位置: 首页 > 知识库问答 >
问题:

CloudKit:在一个查询中获取记录和引用(类似于解析)

白侯林
2023-03-14

随着Parse即将死亡,我正在使用CloudKit重写一个应用程序。假设我正在制作一个食谱调度应用程序。我想要一个给定的时间表包含食谱的有序列表,食谱可以在多个时间表。所以我有:

  • 一个Schedule对象,它与称为“ScheduleItems”的ScheduleItem对象具有一对多关系
  • ScheduleItem对象具有dayOfWeek字段,并且与名为“Recipe”的Recipe对象具有一对一的关系
  • 菜谱对象包含一些信息,包括名称和成分(更多关系)
PFQuery *query = [PFQuery queryWithClassName:@"Schedule"];
[query includeKey:@"scheduleItems.recipe"];

该查询将获取所有的scheduleItems以及它们的所有食谱,使我可以避免执行多个网络请求。

在CloudKit中有这样的方法吗?我看到可以使用CKFetchRecordsOperation一次获取多个记录,但在获取scheduleItems之前,我不知道菜谱的记录ID,因此仍然需要第二个网络请求。

共有1个答案

笪波鸿
2023-03-14

CloudKit不是关系数据库。这是一个键值存储。没有在一个查询中查询多个RecordType的功能。也没有聚合查询的功能。在您的情况下,由于这是一对一的关系,您可以通过在您的食谱中向计划中添加一个CKReference来将其限制为2个查询。因此,如果您有一个时间表,您可以执行一个查询来获取所有相关的ScheduleItem的,并执行另一个查询来获取所有相关的食谱的

 类似资料:
  • 问题内容: 如果某个记录不存在,我需要执行查询以返回下一个(或上一个)记录。例如,考虑下表: 如果7不存在,我想查询ID为7或更大的记录。 我的问题是 SQL可以进行这些类型的查询吗? 在数据库世界中这些查询称为什么? 谢谢! 问题答案: 是的,这是可能的,但是实现将取决于您的RDBMS。 这是在MySQL,PostgreSQL和SQLite中的样子: 在MS SQL Server,Sybase和

  • 问题内容: 参考这个问题: 在一列中获取项目及其值的计数 我如何在单个查询中获得记录计数的百分比,如下所示: 谢谢 问题答案: 给你总数。 编辑 但是实际上,您需要对该列中的值求和。

  • 我是使用NodeJS的这个cassandra数据库的新手。

  • 问题内容: 我正在使用MySQL。我有3表,如下所示。 表:subject_Master 表格:class_Master 表:subjectAllocation 我如何获得如下的SQL结果,想获取subjectAllocation行中每个subjectId的SubjectName 问题答案: 使用 FIND_IN_SET() 函数: 试试这个:

  • 问题内容: 我的数据库表中具有以下格式的数据: 该列将来自该列的数据作为父记录。带有值的表示根项目。我需要编写查询以按以下顺序获取数据: 我需要得到根记录(与记录为0),然后是所有和这根记录,然后获得下根的记录,然后和在这个根记录等等。 问题答案: 我在这里提出的解决方案使用了物化路径的概念。以下是使用样本数据的实例化路径的示例。我希望它可以帮助您理解物化路径的概念: 每个节点都有一个实例化路径,

  • 我需要从用户的所有帖子中获得喜欢字段的总数 这里是模式 用户模式 发布架构 我是新来的猫鼬,提前感谢...