Core Data 嵌套数组计数

Posted

技术标签:

【中文标题】Core Data 嵌套数组计数【英文标题】:Core Data nested array count 【发布时间】:2021-02-22 15:40:00 【问题描述】:

我在核心数据中嵌套了多对多关系: A -> B -> C,其中A有多个B的对象,B有多个C的对象。

现在,我正在尝试获取所有与 C 相关的对象为零的对象 A,无论其之间有多少 B 对象。

我试过这个谓词:

NSPredicate(format: "SUBQUERY(arrayOfB, $b, $b.arrayOfC.@count == 0).@count > 0")

但它给了我这个错误:

'NSInvalidArgumentException', reason: 'Keypath containing KVC aggregate where there shouldn't be one; failed to handle $b.arrayOfC.@count'

【问题讨论】:

【参考方案1】:

尝试使用计数表达式的替代格式:

NSPredicate(format: "SUBQUERY(arrayOfB, $b, count:($b.arrayOfC) > 0).@count == 0")

请注意,我认为您的条件是错误的:您希望(arrayOfB 的计数为零,其中 arrayOfC 具有非零成员)。

【讨论】:

以上是关于Core Data 嵌套数组计数的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB $reduce(aggregation) 组与数组中嵌套文档的总和并按组计数

如何将树状的数组和对象的嵌套数据结构转换为具有计算/计数 id 和跟踪父 id 的项目列表?

C# json提取多层嵌套到数组

Core Data 自定义结构数组

将自定义数组保存到 Core Data

将对象数组保存到 Core Data