AWS Neptune datetime()

4
我正在使用gremlin-javascript来与Node连接AWS Neptune。根据文档快速入门,日期应该使用datetime()进行设置。
我没有在gremlin中找到此datetime()函数的实现。它应该从哪里导入? g.addV("user").property(single, "createdDate", datetime(now().toISOString()); "ReferenceError: datetime is not defined"
1个回答

7

因此,Neptune提供的'datetime()'方法旨在用于将查询作为文本字符串发送到图形。以下是连接到正在运行的Neptune实例的Gremlin控制台中的示例:

gremlin> g.addV('test').property('timestamp',datetime('2018-11-04T00:00:00')).property(id,'t1')
==>v[t1]
gremlin> g.V('t1').valueMap()
==>{timestamp=[Sun Nov 04 00:00:00 UTC 2018]}
gremlin> g.V().has('timestamp',gt(datetime('2018-11-03T00:00:00')))
==>v[t1] 

现在,如果您正在使用像Gremlin Python这样的GLV语言,您可以使用本机Python datetime类。如下所示。请注意,虽然这两个示例共享名称datetime,但除了名称外,它们完全不同。我是在使用Gremlin Python的Jupyter笔记本电脑上运行的,但在Python控制台或独立的Python应用程序中同样有效。

import datetime
g.addV('test').\
    property(id,'x2').\
    property('timestamp',datetime.datetime.now()).next()

v[x2]

g.V('x2').valueMap(True).next()

{<T.label: 3>: 'test',
 <T.id: 1>: 'x2',
 'timestamp': [datetime.datetime(2018, 11, 5, 15, 3, 52, 29000)]}

请原谅我使用Python的例子 - 我知道你正在使用JavaScript。我只是碰巧配置了一个Python环境,但是相同的原则应该适用。

正如我和其他人在其他帖子中提到的那样,我更喜欢使用纪元时间存储时间戳。通常情况下,我使用10或13位整数表示时间,具体取决于我需要的精度。这也是一种相当便携的存储时间信息的方式,并且可以使用大于/小于预算符等轻松进行测试。

无论如何,我希望这有助于更清楚地说明您的选择。 祝好,Kelvin。

更新于2019年10月15日 特别是在Neptune的情况下,使用Java、Python等语言的本地日期对象可能会导致查询运行速度稍快,因为Neptune引擎评估查询的方式不同。


请注意,内部上,Neptune将日期存储为时代毫秒。 - chrylis -cautiouslyoptimistic-
这是否意味着所有东西都以epoch millis的形式在内部存储?即使它来自
  1. Gremlin控制台datetime()
  2. 或者像Nodejs或Python本地日期时间类这样的GLV变量。
- deepugn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接