从 iOS 中的领域 table 获取不同的行
Getting distinct rows from Realm table in iOS
我正在为 iOS 应用程序使用 Realm 数据库,其中我有一个用例,其中我想通过特定字段的不同值过滤结果集。该字段不是领域 table.
的主键
我无法为此构建查询。
示例查询:
RLMResults *allFiles = [FileRLMObject objectsInRealm:realmObject where:@"colA == %@", @"test1"];
FileRLMObject 是 RLMObject 的子类,来自 realm 库
此处 table 包含一列名称为 colB。在获取 allFiles 结果时,我想获取具有不同 colB 值的行。
有什么建议可以实现吗?
Realm 尚不支持不同的查询。您可以订阅 issue #1103 以跟踪这方面的进展。
作为解决方法,您可以先查询 colB
的所有值,然后查询每个值的 select 对象,如下所示:
NSArray *values = [FileRLMObject.allObjects valueForKey:"type"];
NSSet *distinctValues = [NSSet setWithArray:values];
NSMutableArray *allFiles = [NSMutableArray new];
for (NSString *colB in distinctValues) {
// This takes the firstObject.
// You might want to modify the sort order to make sure
// you get a certain object in case that there may exist
// multiple objects per distinct value.
FileRLMObject *object = [FileRLMObject objectsWhere:@"colB == ?", colB].firstObject;
[allFiles appendObject:object];
}
我正在为 iOS 应用程序使用 Realm 数据库,其中我有一个用例,其中我想通过特定字段的不同值过滤结果集。该字段不是领域 table.
的主键我无法为此构建查询。
示例查询:
RLMResults *allFiles = [FileRLMObject objectsInRealm:realmObject where:@"colA == %@", @"test1"];
FileRLMObject 是 RLMObject 的子类,来自 realm 库
此处 table 包含一列名称为 colB。在获取 allFiles 结果时,我想获取具有不同 colB 值的行。
有什么建议可以实现吗?
Realm 尚不支持不同的查询。您可以订阅 issue #1103 以跟踪这方面的进展。
作为解决方法,您可以先查询 colB
的所有值,然后查询每个值的 select 对象,如下所示:
NSArray *values = [FileRLMObject.allObjects valueForKey:"type"];
NSSet *distinctValues = [NSSet setWithArray:values];
NSMutableArray *allFiles = [NSMutableArray new];
for (NSString *colB in distinctValues) {
// This takes the firstObject.
// You might want to modify the sort order to make sure
// you get a certain object in case that there may exist
// multiple objects per distinct value.
FileRLMObject *object = [FileRLMObject objectsWhere:@"colB == ?", colB].firstObject;
[allFiles appendObject:object];
}