针对特定集合的多对多关系核心数据查询

2024-04-13

public enum Ability: String {
  case newcomer = "Newcomer"
  case beginner = "Beginner"
  case intermediate = "Intermediate"
  case advanced = "Advanced"
}

public enum Group: String {
  case solo = "Solo"
  case duo = "Duo"
  case team = "Team"
}

我想找到与以下内容匹配的所有表演。

ability == "Beginner"
group == "Duo"
performers == "Jane Davies" && "Alice Evans"

文档 https://stackoverflow.com/a/17097033/1951992表明不支持核心数据中的聚合操作,这令人惊讶。诸如此类的问题已经被之前问过 https://stackoverflow.com/a/2328651/1951992在这里并建议使用“任何”。

据我了解,“Any”会返回包含“Jane”或“Alice”或“Jane & Alice”的表演,对吗?我只想要包括“简和爱丽丝”在内的表演。

我该如何为此查询编写谓词?

Thanks


带有(不同的)列表演员对象,以下谓词should工作 找到所有表现与那些完全相关的对象 表演者:

let perf1 = ... // Performer object for "Jane Davies"
let perf2 = ... // Performer object for "Alice Evans"
let list = [perf1, perf2]

let predicate = NSPredicate(format: "performers.@count = %ld AND ALL performers in %@", list.count, list)

但显然并非如此。解决方法是使用 SUBQUERY:

let predicate = NSPredicate(format: "performers.@count = %ld AND SUBQUERY(performers, $p, $p in %@).@count = %ld",
      list.count, list, list.count)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对特定集合的多对多关系核心数据查询 的相关文章

随机推荐

  • 将 RGB 数组转换为 Mat (OpenCv)

    我一直在尝试转换数组 R G B 在带有 opencv 的 Mat 对象中 但是返回的数据是错误的 有人知道为什么吗 double data 12 0 0 255 0 0 255 0 0 255 0 0 255 Mat src Mat 2
  • Python PasteScript 的粘贴创建的替代品?

    这好像是粘贴脚本 http pythonpaste org script s paster createfunction 是唯一广泛使用的用于在 python 中构建 生成项目框架的框架 我想知道人们在 python 世界中是否有其他选择
  • 计算所有 1 和 0 相等的二进制数

    我正在实现等边双分区算法的二进制表示 我想知道迭代具有相等 N 2 1 和 0 的 N 位的所有组合的最佳方法是什么 我试图找到最快的方法 而不是最简单的编码方法 谢谢 只是 N choose N 2 你要选择哪些位是 0 其余的是 1 如
  • 在法国 Windows Server 上使用 django 换行的问题

    Problem 当将通过 render to string 读入的字符串写入文件时 我的 Django 应用程序在每个 CRLF 之前引入一个 CR 在我的模板文件中 我使用了 CRLF Django 处理应用程序编写了一个文件 在每个 C
  • 自动加载和命名空间

    我使用 PHP 已经很长时间了 但现在开始尝试新的语言功能 例如命名空间 我有一个关于自动加载的问题 但在网络搜索中找不到足够的答案 假设我在不同的命名空间中有类 namespace foo bar baz class Quux names
  • 将java代码编译为exe(例如使用Launch4Java)是否确保代码无法被逆向工程?

    经过我自己的实验 我确信 Java 代码混淆在防止逆向代码工程方面并不安全 因此 我转而使用 Launch4J 将我的核心 jar 文件之一捆绑到单个 EXE 文件中 jar 文件还包含主要的入口方法 这会再次保护代码逆向工程吗 如果计算机
  • ASP/VBScript - Int() 与 CInt()

    ASP VBScript 之间有什么区别Int and CInt Int http www w3schools com Vbscript func int asp Int 函数返回指定数字的整数部分 CInt http www w3scho
  • 分组data.fame后的自定义函数

    给定以下数据框 d lt rep c a b each 5 l lt rep 1 5 2 v lt 1 10 df lt data frame d d l l v v v df d l v 1 a 1 1 2 a 2 4 3 a 3 9 4
  • 如何处理复杂的事情?

    您知道代码中对于项目至关重要但可能需要花费大量时间才能完成的特定部分吗 您是否有过这样的感觉 您宁愿做其他事情 可能不太重要 或者根本不写代码 而不是做那部分 你竭尽全力避免并使用你所知道的每一个懒惰技巧来推迟其不可避免的实施的那头野兽 现
  • 我可以对任意排列的浮点数向量进行确定性求和吗?

    假设我有一个 可能很大 由某些黑盒过程产生的浮点数向量 是否可以计算这些数字的按位可再现总和 如果黑盒过程总是以相同的顺序产生数字 那么按位可再现的求和很容易 只需从左到右对它们求和即可 但是 如果数字以随机顺序生成 也许是因为它们是从异步
  • 正则表达式匹配字符串之间的数字

    我需要从字符串 start 和 end 之间的以下文本中提取整数值 并且only之间 111222 garbage 999888 start 123456 end start 654321 end 想要的结果 123456 654321 这
  • 导致TTS初始化失败的原因有哪些?

    在以下场景中观察到 TTS 初始化错误 该错误过于随机 TTS 引擎已安装 语音集已存在 并且可以从辅助功能选项中播放示例 tts TTS 初始化在先前初始化和播放的同一设备上随机失败 在不同的设备 一加 华硕 三星 和各种 Android
  • UICollectionView - 滚动到下一页

    是否有机会使用 UICollectionView 滚动到所需的项目 scrollToItemAtIndexPath 并且不捕捉到项目本身 而是捕捉到项目所属的页面 我启用了分页功能 Cheers 你需要创建NSIndexPath而不是滚动到
  • 创建自定义 UTI 以与空投、iOS 一起使用

    我在 info plist 中使用此代码
  • 在 Bash 中动态构建命令管道

    我正在编写一个带有选项的 bash 程序 例如 my program l 3 a s l 3将输出限制为三行 a将选择我的所有文件 s将对输出进行排序 现在 我可以这样一次使用两个选项 if all 1 then if sort 1 the
  • 升级 ng-jhipster 库以兼容 Angular 16.2.0

    我正在开发一个依赖 ng jhipster 库的 Angular 应用程序 特别是版本 0 16 0 以下是 ng jhipster 的 package json 中的相关部分 name ng jhipster description A
  • 由于“无法获取 QuerySet 类的 repr”错误,嵌套序列化器上的非空约束失败

    尝试在我的 DRF 项目中使用基本的消息传递功能 我似乎对嵌套序列化器验证有问题 我是 DRF 的新手 已经阅读文档几天了 但我一定错过了一些东西 错误发生在行内message Message objects create validate
  • JIT 与解释器

    我找不到 JIT 和解释器之间的区别 Jit 是解释器和编译器的中介 在运行时 它将字节代码转换为机器代码 JVM 或实际机器 下次 它从缓存中获取并运行 我对吗 解释器将直接执行字节码 而不将其转换为机器代码 是对的吗 我们电脑中真正的处
  • HTML5 视频 JavaScript 控件 - 重新启动视频

    我知道如何使用 play 和pause 开始和停止视频 但是如何使用 javascript 将视频放回到 HTML5 的开头 有没有办法将指针移回开头 Set the currentTime http www w3 org TR html5
  • 针对特定集合的多对多关系核心数据查询

    public enum Ability String case newcomer Newcomer case beginner Beginner case intermediate Intermediate case advanced Ad