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

时间:2017-12-14 22:13:45

标签: node.js rethinkdb rethinkdb-javascript

我正在尝试运行ReQL查询以在2个纪元之间获取数据,我有一个名为“lastUpdatedDttm”的字段,我正在尝试运行查询,如下所示。 lastUpdatedDttm字段类型为“number”,只是新的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)))

上述查询返回错误,e:不是TIME假型:

我在查询中遗漏了什么?

1 个答案:

答案 0 :(得分:0)

我认为持续时间需要时间对象作为参数,所以你需要使用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)
        )
    )
})