我在Realm
数据库
realm.objects(Event)
.filter("ANY presentation.speakers.lastName CONTAINS [c]%@", searchTerm)
不幸的是它没有用,我收到了以下错误
'无效谓词',原因:'聚合操作只能用于RLMArray属性'
presentation
是Event
类
public dynamic var presentation : Presentation?
speakers
是List<PresentationSpeakers>
在演示文稿
public let speakers = List<PresentationSpeaker>()
ANY
我的感觉是speakers
必须直接对集合进行操作,但Event
不是yes
的直接属性。
我的查询有什么问题,我该如何正确实现?
答案 0 :(得分:6)
由于presentation
是一对一的关系,因此无需在查询中写ANY
:
realm.objects(Event)
.filter("presentation.speakers.lastName CONTAINS [c]%@", searchTerm)
ANY
属性隐含speakers
,因为它是嵌套的密钥路径。要指定ANY
以外的其他内容,您可以在speakers
上使用修饰符,如下所示:
realm.objects(Event)
.filter("presentation.speakers[FIRST].lastName CONTAINS [c]%@", searchTerm)
但是,Realm还不支持这种查询。
有关谓词以及Realm支持哪些谓词的更多信息,请参阅Realm的谓词备忘单:NUnit has