Realm - 过滤大于字符串属性的对象
Realm - filter objects greater than string attribute
我正在尝试从 Realm 数据库中过滤对象。我有 itemIdForDateOrder
属性,它是字符串(看起来像这样:11e6-eef3-09306910-baa7-417b3207abf6
),按此属性排序没有问题:
realm.objects(ItemInfo.self).sorted(byKeyPath: "itemIdForDateOrder", ascending: false)
问题是我试图通过这个属性过滤对象,我想得到这个参数更大的对象。
我的部分谓词:
if let item = newerThan {
formatString += " AND itemIdForDateOrder > '" + item.itemIdForDateOrder + "'"
}
但是当我使用它时出现异常:
Terminating app due to uncaught exception 'Invalid operator type',
reason: 'Operator '>' not supported for string type'
但是当我可以使用我的属性进行排序时,比较适用于字符串类型。那么有没有办法我也可以通过这个属性进行过滤呢?或者我必须获取所有对象然后过滤它们(而不是通过领域谓词过滤器)。谢谢
如错误所述,Realm 的查询引擎目前不支持使用不等式过滤字符串属性。我建议 filing an enhancement request against Realm 请求添加此类支持,然后在 Realm 之外执行过滤(即,将对象收集到数组中,然后过滤数组)。
我正在尝试从 Realm 数据库中过滤对象。我有 itemIdForDateOrder
属性,它是字符串(看起来像这样:11e6-eef3-09306910-baa7-417b3207abf6
),按此属性排序没有问题:
realm.objects(ItemInfo.self).sorted(byKeyPath: "itemIdForDateOrder", ascending: false)
问题是我试图通过这个属性过滤对象,我想得到这个参数更大的对象。
我的部分谓词:
if let item = newerThan {
formatString += " AND itemIdForDateOrder > '" + item.itemIdForDateOrder + "'"
}
但是当我使用它时出现异常:
Terminating app due to uncaught exception 'Invalid operator type', reason: 'Operator '>' not supported for string type'
但是当我可以使用我的属性进行排序时,比较适用于字符串类型。那么有没有办法我也可以通过这个属性进行过滤呢?或者我必须获取所有对象然后过滤它们(而不是通过领域谓词过滤器)。谢谢
如错误所述,Realm 的查询引擎目前不支持使用不等式过滤字符串属性。我建议 filing an enhancement request against Realm 请求添加此类支持,然后在 Realm 之外执行过滤(即,将对象收集到数组中,然后过滤数组)。