React Native中Realm DB数组字段包含字符串过滤失效问题
解决Realm数组字段包含关键词的过滤问题
你的问题出在Realm查询语法的使用上:CONTAINS是针对字符串字段的匹配规则,直接作用在数组字段labels上不符合Realm的查询规范,所以无法生效。
正确的过滤写法有两种:
使用
ANY关键字指定数组元素的匹配条件:entities.filtered("ANY labels CONTAINS $0", key)如果需要忽略大小写匹配,改成
CONTAINS[c]:entities.filtered("ANY labels CONTAINS[c] $0", key)使用Realm数组专用的
@运算符:entities.filtered("labels @ CONTAINS $0", key)同样,忽略大小写的话写成:
entities.filtered("labels @ CONTAINS[c] $0", key)
另外注意:不要用模板字符串拼接${key}作为参数,直接通过filtered方法的第二个参数传入关键词,既符合Realm的参数传递规范,也能避免潜在的注入风险。
内容的提问来源于stack exchange,提问作者MaksimL
相关产品推荐
相关产品推荐

