swift - 查询特定项目的最佳方法
问题描述
我有一个清单
传感器
我的领域数据库中的项目。
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 小时?
谢谢。
解决方案
推荐阅读
- azure - Service Fabric 运行时安装问题
- react-native - react-native 应用程序的后台同步任务不起作用
- python - 如何在 python 中分析 python 代码以识别变量名、函数调用等
- android - 为离线配置android studio不起作用
- cypress - 如何过滤深层子 div 内容的断言但产生原始元素?
- python - 映射同一列的两个值时的问题
- mysql - 如何为每个团队选择最后 XX 个条目?
- python - 使用给定的有序数据集启动二维数组
- reactjs - 如何将 this.props 用作不同的实例?
- python - 在 OpenCv python 中调整图像大小,用颜色填充空间