我有以下型号:
class User: Object {
dynamic var name = ""
let events = List<Event>()
}
class Event : Object {
dynamic var description = ""
let dates = List<Date>()
}
class Date : Object {
dynamic var date = "" //string
}
有没有什么好方法可以查询/过滤关闭日期到当前日期的(一)事件?如果不可能,应该如何修改模型,我看到子查询仅适用于@count,即realm.objects(Company.self).filter(“employees。@ count&gt; 5”)
答案 0 :(得分:2)
遗憾的是date
不是NSDate
属性,因为您可以轻松按降序排序,然后使用LinkingObjects
查找Event
Date
对象所属的那个:
class Event : Object {
dynamic var description = ""
let dates = List<Date>()
}
class Date : Object {
dynamic var date = NSDate()
let events = LinkingObjects(fromType: Event.self, property: "dates")
}
let realm = try! Realm()
let latestDate = realm.objects(Date.self).sorted("date", ascending: false).first
let latestEvent = latestDate.events.first
不幸的是,由于date
是一个字符串,这可能不起作用。您可以尝试在sorted()
上使用date
,但它会按字母顺序排序,而不是按时间顺序排序,因此您可能无法获得最新日期。
如果是这种情况,您需要手动实现每个Date
对象的循环,解析它并自行执行排序。