Realm React Native:根据列表中的最后一个对象进行过滤

时间:2016-08-16 01:36:37

标签: react-native realm

如何在Realm React Native

中的子对象中按属性过滤查询

这是我的(简化)架构。

Habit.schema = {
    name: 'Habit',
    primaryKey: 'id',
    properties: {
        id: 'int', 
        name: 'string',
        intervals: {type:'list', objectType: 'Interval'}
    }
}

Interval.schema = {
    name: 'Interval',
    primaryKey: 'id',
    properties: {
        id: 'int', 
        intervalStart: 'date',
        intervalEnd: 'date',
        allComplete: 'bool',
    }
}

我尝试过:

let filteredHabits = realm.objects('Habit').filtered('intervals.intervalStart < $0 AND intervals.intervalEnd > $0 AND intervals.allComplete == false', new Date());

但这似乎正在做的是经历所有习惯的所有间隔,并且只要其中一个间隔在当前时间之前开始并且另一个间隔在当前时间之前结束,它将会错过过滤器。

我想做的是基于列表中最后一个时间间隔的查询。如果我不能这样做,有没有办法确保它只比较一个区间的属性,而不是所有区间的属性?

1 个答案:

答案 0 :(得分:1)

Realm for React Native使用的谓词语言尚未直接支持您所追求的查询类型。我鼓励你file a feature request要求它。与此同时,您可以通过在JavaScript中执行过滤来解决此限制。