Как пропустить нулевое свойство при создании вершины в NeptuneDB (Gremlin) - PullRequest
0 голосов
/ 11 октября 2019

В NeptuneDB я хочу проверить, существует ли одна конкретная вершина или нет, если нет, создать ее и добавить некоторые свойства. Вот моя реализация в Gremlin Python:

g.V().hasLabel('Event').has(T.id, idNum).fold().coalesce(unfold(), addV('Event').property(T.id, idNum)). property(Cardinality.single, 'semState', event['semState']).property(Cardinality.single, 'System', systemname).next()

, но иногда свойство 'System' может иметь значение null, в этом случае выдается ошибка. Поэтому мне было интересно, есть ли способ проверить, является ли 'System' нулем в запросе выше, если null, пропустите его.

1 Ответ

1 голос
/ 11 октября 2019

Gremlin не нравится нулевые значения, поэтому решение должно быть на стороне клиента, разделив запрос:

query = g.V().hasLabel('Event').has(T.id, idNum).fold().coalesce(unfold(), addV('Event').property(T.id, idNum)). property(Cardinality.single, 'semState', event['semState'])
if systemname is not None:
    query = query.property(Cardinality.single, 'System', systemname)
query.next()
...