首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用组算子代替ISO8601的时间伪型

使用组算子代替ISO8601的时间伪型
EN

Stack Overflow用户
提问于 2015-12-03 14:48:14
回答 1查看 280关注 0票数 8

我已经开始使用RethinkDB了,我在理解我正在运行的一些查询时遇到了一些困难。

问题是从NodeJS应用程序(使用rethinkdbdash t驱动程序)查询日期时间类型的对象,该公开了一个JSON。如果我个别地查询我的对象,例如:

代码语言:javascript
复制
db.table('apples').max('timestamp');

我获得时间戳字段的JavaScript日期,而如果我在查询中按操作符运行一个组(如:

代码语言:javascript
复制
db.table('apples').group('type').max('timestamp');

我得到相同时间戳字段的日期时间伪类型(我认为这是正确的名称)。类似于:

代码语言:javascript
复制
{
  "$reql_type$": "TIME",
  "epoch_time": 1423077646.772,
  "timezone": "-07:00"
}

这是预期的行为吗?背后的逻辑是什么?

我希望在JSON中返回序列化的iso8601日期,而不是这种数据类型,以使解析对客户端透明。

谢谢,

更新这对于2.2.7之前的版本来说是一个已知的问题。Fixed here

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-07 10:08:11

这看起来像是rethinkdbdash中的一个bug。服务器总是以伪类型(带有$reql_type$字段的对象)的形式向客户机发送时间,客户端负责将伪类型转换为本机时间对象(因为不同语言中的驱动程序必须以不同的方式完成这一任务)。我会在https://github.com/neumino/rethinkdbdash/issues打开一个窃听器。

我想这个bug的来源是group返回一个GROUPED_DATA伪类型,而rethinkdbdash t没有正确地转换其他伪类型中的伪类型。如果运行db.table('apples').group('type').max('timestamp').ungroup(),可能会修复此查询的问题,直到对驱动程序进行修补。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34068959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档