Таким образом, метод datetime (), который предоставляет Neptune, предназначен для использования при отправке запросов к графу в виде текстовых строк. Вот пример консоли Gremlin, подключенной к работающему экземпляру Neptune:
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
. Как показано ниже. Обратите внимание, хотя два примера имеют общее имя datetime
, они совершенно разные во всем, кроме имени. Я запускал это из Jupyter Notebook с использованием Gremlin Python, но он одинаково хорошо работает в консоли 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-значные целочисленные представления времени в зависимости от необходимой мне точности. Это также довольно переносимый способ хранения информации о времени, который легко тестировать с использованием предикатов больше / меньше и т. Д.
В любом случае, я надеюсь, что это поможет немного уточнить ваш выбор. Ура, Кельвин.
ОБНОВЛЕНО 15 октября 2019 г. В частности, в случае Neptune использование собственного объекта даты из Java, Python и т. Д. Может привести к тому, что запросы будут выполняться немного быстрее из-за того, как Neptune Engine оценивает запросы.
person
Kelvin Lawrence
schedule
05.11.2018