在ArangoDB 3.1中查询日期

flvlnr44  于 2023-09-28  发布在  Go
关注(0)|答案(2)|浏览(195)

据我所知,ArangoDB 3.1现在支持日期类型作为其新的内部存储格式VelocyPack的一部分。如何在AQL查询中使用日期类型的字段(例如,FILTER)?看起来文档尚未更新日期类型字段:https://docs.arangodb.com/3.11/aql/functions/date/
有人能提供一个AQL查询的例子吗?事

FOR p IN person FILTER p.birthday == '2016-11-04' RETURN p

其中字段p.birthday是日期类型的?

h9vpoimq

h9vpoimq1#

由于VelocyPack主要用作ArangoDB的内部存储格式,因此AQL、shell或web-ui目前不支持其他VelocyPack类型。它们都必须使用JSON进行处理。
目前,创建日期类型文档的唯一方法是通过Java-Driver(版本4.1.0)。驱动程序也是从AQL查询中获得VelocyPack的唯一可能性。所有其他实现都会自然地返回json,而不需要额外的VelocyPack类型。
除此之外,AQL日期函数在当前开发状态下不支持VelocyPack日期类型。

qvtsj1bj

qvtsj1bj2#

自ArangoDB 3.0版本以来,ArangoDB使用VelocyPack作为内部存储格式。VelocyPack有一个Date数据类型,以及一些JSON中不存在的其他数据类型。
但是,即使VelocyPack被用作ArangoDB的内部存储格式,ArangoDB的所有外部API仍然是基于JSON的,这意味着它们只支持JSON原生支持的数据库(null,boolean,number,string,array,object)。
对更多(非JSON)数据类型的支持在路线图上,但在ArangoDB 3.1中还没有。支持更多的数据类型需要为这些数据类型编写一些内部 Package 器函数,并使所有的AQL操作符都能正确地处理它们。
因此在3.1版本中,保存日期值的选项仍然是使用日期时间字符串(例如以ISO8601格式(如2016-11-10T14:08:20.236Z)* 或 * 使用数值存储时间戳。

相关问题