查询特定项目的最佳方法

时间:2018-07-10 15:17:37

标签: swift realm

我有一个

列表
  

传感器

我的领域数据库中的项目。

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小时更新的所有商品?

谢谢。

0 个答案:

没有答案