如何搜索int数组作为属性?

时间:2018-02-15 18:02:40

标签: react-native realm

我的展示对象:

class Show extends Realm.Object { }
  Show.schema = {
  name: 'Show',
  primaryKey: 'showId',
  properties: {
    showId: 'int',
    showName:{ type: 'string', default: ''  },
    episodes:{ type: 'int[]', default: []  },
   }  
};

如何通过剧集属性搜索Show对象?

我已经在这里搜索并尝试过:

.filtered('episodes == $0',12345)
.filtered('episodes IN $0',12345)

但没有任何作用。

1 个答案:

答案 0 :(得分:0)

IN谓词尚不支持,但有几种解决方法:

属性数组包含值

如果您想知道Realm对象上的数组属性是否包含一个或多个值,则不能在示例中使用int[]之类的原始值。如果您使用Episode属性创建id架构,则可以执行filtered('episodes.id == $0', 12345)

数组中的标量属性

这可以通过映射和连接一组谓词来完成,直到支持IN,这看起来类似于以下的伪代码:

.filterted([1,2,3].map(id => 'property == id').join(' OR '))