我有一个
列表传感器
我的领域数据库中的项目。
class Sensor: Object {
@objc dynamic var sensorID: Int8 = 0
@objc dynamic var value: Int16 = 0
@objc dynamic var timestamp: Int64 = 0
@objc dynamic var location: Location?
@objc dynamic var isIndoor: Bool = true
@objc dynamic var synced: Bool = false
}
获取所有比24小时更新的商品的最佳方法是什么。
我写了这个方法
func getSensors() -> [Sensor] {
guard let items = RealmManager.shared.getObjectsWith(type: Sensor.self), let sensors = Array(items) as? [Sensor] else {
return []
}
return sensors.filter({$0.value != -1 && Date(timeIntervalSince1970: TimeInterval($0.timestamp)).differenceInHours() < 24})
}
但是,如果我有大约100000件商品,它会首先获取所有这些商品,然后再进行过滤,这不是最佳选择,而且需要很长时间。
我该如何编写查询以获取比24小时更新的所有商品?
谢谢。