我使用“RealmSwift”在我的应用程序中创建 Realm 数据库。考虑我使用的“Object”的子类“ClassA”。 'ClassA' 及其属性可以简单描述如下(为简洁起见,省略实际代码):
ClassA: Object
-prop1
-prop2
-prop3
-prop4
-prop5
-prop6
我想要在“ClassA”上有两个索引。具体来说,我希望每个索引都是复合索引。我们将这两个索引称为“Index1”和“Index2”。我所说的复合是指一个索引可以有多个属性。因此,让我们定义两个索引如下:
Index1: prop1, prop2, prop6
Index2: prop3, prop4, prop5
我需要这些复合索引,以便更快地获取,以防我有这些特定属性的值。这对于我的申请至关重要。
使用“RealmSwift”在真实对象上提供索引是通过返回一个包含我们想要索引的属性名称的字符串数组来覆盖 Object.indexedProperties() 来完成的。
我想知道这是否会为每个属性创建单独的索引,或者为所有属性创建单个复合索引。
最佳答案
据我了解,文档Object.indexedProperties()将为您返回的每个属性创建一个索引,但没有复合索引。
为了解决这个问题,您可以在对象上创建新属性,这些属性组合了您想要用于复合索引的属性。
示例: 通过将 prop1、prop2 和 prop6 连接到一个字符串来创建一个新属性 indexProp126(仅作为示例,有可能是更有效的方法,例如散列等,具体取决于这些属性的类型和内容),然后使用它作为索引。
关于swift - Realm 对象上的索引是属性的复合索引或每个属性的不同索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54001862/