AWS Neptune 日期时间()
AWS Neptune datetime()
我正在使用 gremlin-javascript
从 Node.js 与 AWS Neptune 对话。根据 docs and quickstart,日期应使用 datetime()
设置。
我没有在 gremlin
中找到此 datetime()
函数的实现。这应该从哪里导入?
g.addV("user").property(single, "createdDate", datetime(now().toISOString());
"ReferenceError: datetime is not defined"
因此,Neptune 提供的 'datetime()' 方法旨在用于将查询作为文本字符串发送到图形。这是连接到 运行ning 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]
现在,如果您使用的是 GLV 语言,例如 Gremlin Python,您可以改用原生的 Python datetime
class。如下所示。请注意,虽然这两个示例共享名称 datetime
,但除了名称之外,它们在其他方面完全不同。我 运行 这是来自使用 Gremlin Python 的 Jupyter Notebook,但它在 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 示例 - 我知道您正在使用 Java 脚本。我只是碰巧配置了一个 Python 环境,但应该应用相同的原则。
正如我和其他人在其他帖子中提到的那样,我更喜欢使用纪元时间存储时间戳。通常我使用 10 或 13 位整数表示时间,具体取决于我需要的精度。这也是一种存储时间信息的相当便携的方式,并且使用比谓词等更大的 than/less 易于测试
无论如何,我希望这有助于澄清您的选择。
干杯,开尔文。
2019 年 10 月 15 日更新
特别是在 Neptune 案例中,使用来自 Java、Python 等的本机日期对象可能会导致查询 运行 由于 Neptune 引擎评估查询的方式而快一点。
我正在使用 gremlin-javascript
从 Node.js 与 AWS Neptune 对话。根据 docs and quickstart,日期应使用 datetime()
设置。
我没有在 gremlin
中找到此 datetime()
函数的实现。这应该从哪里导入?
g.addV("user").property(single, "createdDate", datetime(now().toISOString());
"ReferenceError: datetime is not defined"
因此,Neptune 提供的 'datetime()' 方法旨在用于将查询作为文本字符串发送到图形。这是连接到 运行ning 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]
现在,如果您使用的是 GLV 语言,例如 Gremlin Python,您可以改用原生的 Python datetime
class。如下所示。请注意,虽然这两个示例共享名称 datetime
,但除了名称之外,它们在其他方面完全不同。我 运行 这是来自使用 Gremlin Python 的 Jupyter Notebook,但它在 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 示例 - 我知道您正在使用 Java 脚本。我只是碰巧配置了一个 Python 环境,但应该应用相同的原则。
正如我和其他人在其他帖子中提到的那样,我更喜欢使用纪元时间存储时间戳。通常我使用 10 或 13 位整数表示时间,具体取决于我需要的精度。这也是一种存储时间信息的相当便携的方式,并且使用比谓词等更大的 than/less 易于测试
无论如何,我希望这有助于澄清您的选择。 干杯,开尔文。
2019 年 10 月 15 日更新 特别是在 Neptune 案例中,使用来自 Java、Python 等的本机日期对象可能会导致查询 运行 由于 Neptune 引擎评估查询的方式而快一点。