0

[编辑]在Realm React Native中查询日期

我想查询并按领域中的日期过滤。这里是我的代码:

let factories = realm.objects('Factory') 
    for(factory of factories) { 
     let toys = realm.objects('Toy').filtered('factory_id == factory.id') 
     let lowerBound = new Date(year + '-1-1T00:00:00Z') 
     let uppperBound = new Date(year + '-2-1T00:00:00Z') 
     let janToys = toys.filtered('created_at > lowerBound AND created_at < uppperBound') 
    } 

year是上面的代码段之前声明的变量。

这不起作用,我敢肯定这是因为日期格式不正确。

这里是日期格式,当我登录玩具:

Fri Mar 24 2017 16:01:59 GMT+0800 (Malay Peninsula Standard Time)

我想知道如何查询境界日期。我无法在文档和其他帖子中找到它。我会很感激任何帮助。如果这不是日期格式问题,请告诉我。

谢谢!

编辑:我添加了外部循环。这可能不是日期格式问题。这里是错误信息:

Error: Predicate expressions must compare a keypath and another keypath or a constant value` 
+0

如果你创建你的lowerBound和upperBound,如下所示:'let lowerBound = new Date(year +'-01-01T00:00:00');'和'let uppperBound = new Date(year +'-02 -01T00:00:00');' –

+0

@JanPeter,嗨,这是一个诚实的错误。我试着运行它,这个错误出现了: '错误:谓词表达式必须比较一个键路径和另一个键路径或一个常量值' –

+0

嗯,这对我来说很神秘,因为我不常使用领域:/但我会将日期存储为整数,并在保存和读取日期之前将日期转换为unix时间戳。使我的事情变得容易很多,因为处理日期类型不是很容易,因为经常在各种语言之间切换^^ –

回答

1

似乎Realm在其查询中不支持点运算符。强制Realm处于关系状态是不允许的。作为解决方案,我将我的用法转换为遵循NoSQL约定。传入对象而不是声明关系。