我已经开始使用RethinkDB了,我在理解我正在运行的一些查询时遇到了一些困难。
问题是从NodeJS应用程序(使用rethinkdbdash t驱动程序)查询日期时间类型的对象,该公开了一个JSON。如果我个别地查询我的对象,例如:
db.table('apples').max('timestamp');我获得时间戳字段的JavaScript日期,而如果我在查询中按操作符运行一个组(如:
db.table('apples').group('type').max('timestamp');我得到相同时间戳字段的日期时间伪类型(我认为这是正确的名称)。类似于:
{
"$reql_type$": "TIME",
"epoch_time": 1423077646.772,
"timezone": "-07:00"
}这是预期的行为吗?背后的逻辑是什么?
我希望在JSON中返回序列化的iso8601日期,而不是这种数据类型,以使解析对客户端透明。
谢谢,
更新这对于2.2.7之前的版本来说是一个已知的问题。Fixed here。
发布于 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(),可能会修复此查询的问题,直到对驱动程序进行修补。
https://stackoverflow.com/questions/34068959
复制相似问题