Rethinkdb 查询在 2 个纪元之间获取数据

Rethinkdb query to fetch data between 2 epoch times

我正在尝试 运行 ReQL 查询以获取 2 个纪元之间的数据,我有一个名为 "lastUpdatedDttm" 的字段,我正在尝试使用它来 运行查询如下。 lastUpdatedDttm 字段类型是 "number" 并且只是 new date().getTime()

r.db('my_db').table('my_table').getAll('/mypath', { 
index: 'path' }) .filter(r.row('updatedBy').eq('id').and(r.row('lastUpdatedDttm').during(1512864000000, 1513209600000)))

上面的查询returns错误,e: Not a TIME pseudotype:

我在查询中遗漏了什么吗?

我相信持续时间需要时间对象作为参数,所以你需要使用 epochTime 方法来转换你的时间,所以

r.db('my_db').table('my_table').getAll('/mypath', { index: 'path' })
  .filter(
    r.row('updatedBy').eq(id)
      .and(
        r.row('lastUpdatedDttm')
          .during(
            r.epochTime(1512864000000 / 1000),
            r.epochTime(1513209600000 / 1000)
          )
      )
    )

您还应确保 lastUpdatedDttm 存储为日期

如果您将 lastUpdatedDttm 存储为由 new Date().getTime() 生成的数字,您可以执行

r.db('my_db').table('my_table').getAll('/mypath', { index: 'path' })
  .filter(record => {
    return record('updatedBy').eq(id).and(
      r.epochTime(record('lastUpdatedDttm').div(1000))
        .during(
          r.epochTime(1512864000000 / 1000),
          r.epochTime(1513209600000 / 1000)
        )
    )
})