我有一个 @Model 类,它有一个项目数组,这些项目也通过关系保存在数据库中。有没有办法在数据库级别按日期获取最后一条记录,而不是获取所有记录然后获取最大日期
这就是我现在正在做的事情,速度很慢,我正在寻找更好的方法
let fetchDescriptor = FetchDescriptor<Item>(predicate: #Predicate {$0.tag?.persistentModelID == id}, sortBy: [SortDescriptor(\.date)])
let items = try! modelContext.fetch(fetchDescriptor)
let lastItem = items.last!
我尝试了
fetchDescriptor.fetchLimit = 1
,但它不起作用,它给了我一些随机项目。
使用具有获取限制的反向排序顺序仅获取最新的对象
var fetchDescriptor = FetchDescriptor<Item>(predicate: {
$0.tag?.persistentModelID == id
}, sortBy: [SortDescriptor(\.date, order: .reverse)])
fetchDescriptor.fetchLimit = 1