AWS Neptune datetime()

Я использую gremlin-javascript поговорить с AWS Нептун из узла. В соответствии с документацией и кратким описанием, даты должны быть установлены с использованием datetime(),

Я не нашел реализацию этого datetime() функция в gremlin, Откуда это нужно импортировать?

g.addV("user").property(single, "createdDate", datetime(now().toISOString());

"ReferenceError: datetime is not defined"

2 ответа

Решение

Таким образом, метод 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, используя 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-значные целочисленные представления времени в зависимости от необходимой точности. Это также довольно переносимый способ хранения информации о времени, который легко тестировать с использованием предикатов больше / меньше и т. Д.

В любом случае, я надеюсь, что это поможет немного прояснить ваш выбор. Ура, Кельвин.

datetime() не является частью Gremlin и является функцией расширения для Нептуна. Я не знаю, чтобы Нептун опубликовал клиентское расширение для javascript (или любого другого языка в этом отношении), которое включает эту функцию. При использовании языкового варианта Gremlin, как вы (что рекомендуется вместо встроенных сценариев Gremlin), может быть лучше хранить даты так долго, как описано в ответе на этот вопрос.

Другие вопросы по тегам