4

我将 AWS Neptune Gremlin 与gremlin_python.

根据Neptune specs的要求,我在财产中的日期存储为日期时间。

我使用这样的 Python 代码创建了它:
properties_dict['my_date'] = datetime.fromtimestamp(my_date, timezone.utc)
然后使用属性构造了 Vertex:

for prop in properties:
    query += """.property("%s", "%s")"""%(prop, properties[prop])

稍后在与构造图交互时,我只能通过精确的字符串匹配查询找到顶点,如下所示:
g.V().hasLabel('Object').has("my_date", "2017-12-01 00:00:00+00:00").valueMap(True).limit(3).toList()

在 Gremlin 中处理日期或日期时间的最佳方法是什么?
如何进行范围查询,例如“给我所有日期为 2017 年的顶点”

4

1 回答 1

4

就个人而言,我更喜欢将日期/时间值存储为自纪元以来的天/秒/毫秒。这肯定适用于任何 Graph DB,并使范围查询更加简单。此外,转换为自纪元以来的天数或秒数应该是几乎任何语言的简单方法调用。

因此,当您创建属性字典时,您可以通过将其更改为来简化代码:

properties_dict['my_date'] = my_date

...my_date应该表示自纪元以来的秒数。范围查询很简单:

g.V().has("Object", "my_date", P.between(startTimestamp, endTimestamp)).
  limit(3).valueMap(True)
于 2018-10-29T17:56:09.697 回答