Как проверить значение логического свойства в шаге has запроса gremlin? - PullRequest
0 голосов
/ 22 апреля 2019

Я определил вершину со схемой, и некоторые свойства вершины имеют тип boolean.Сейчас я пытаюсь запросить вершину и отфильтровать результаты по логическому значению этих свойств.

Я пробовал:

g.V().hasLabel('Patient').has('alcohol_abuse', eq(true))
g.V().hasLabel('Patient').has('alcohol_abuse', true)
g.V().hasLabel('Patient').has('alcohol_abuse', constant(true))
g.V().hasLabel('Patient').has('alcohol_abuse', eq(1))

плюс еще много вариантов, ни один не возвращает правильные результаты

Я ожидаю получить вершины в вершине пациента со свойством alcohol_abuse true.

Спасибо

1 Ответ

1 голос
/ 22 апреля 2019

Странно - это:

g.V().hasLabel('Patient').has('alcohol_abuse', true)

или, более кратко, это:

g.V().has('Patient', 'alcohol_abuse', true)

должно работать. Я сделал быстрый тест с TinkerGraph:

gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('Patient').property('alcohol_abuse',true).
......1>   addV('Patient').property('alcohol_abuse',false).iterate()
gremlin> g.V().has('Patient','alcohol_abuse',true).count()
==>1
gremlin> g.V().has('Patient','alcohol_abuse',false).count()
==>1

так что это определенно ожидаемый результат для всех реализаций TinkerPop, включая JanusGraph. Если вы не видите решения своей проблемы, вы можете опубликовать текст сеанса консоли Gremlin, чтобы продемонстрировать его.

...