пример графика:
g.addV('location').property('name','Location A').as('location')
.addV('building').property('totalLetterCapacity',50).as('building')
.sideEffect(addE('has-building').from('location'))
.addV('letter').property('totalLetters',10).as('a')
.sideEffect(addE('has-letter').from('building'))
.addV('letter').property('totalLetters',10).as('b')
.sideEffect(addE('has-letter').from('building'))
.addV('letter').property('totalLetters',10).as('c')
.sideEffect(addE('has-letter').from('building'))
.addV('letter').property('totalLetters',10).as('d')
.sideEffect(addE('has-letter').from('building'))
.addV('letter').property('totalLetters',10).as('e')
.sideEffect(addE('has-letter').from('building'))
В этом примере графика я хочу получить все здания, которые заполнены буквами.Таким образом, в этом образце графика есть только одно местоположение, которое удовлетворяет требованию - имеет 50 буквенных емкостей и 5 букв с 10 емкостями, прикрепленными к зданию.
Я надеялся, что что-то подобное сработает:
g.V().hasLabel('location')
.out('has-building')
.where(values('totalLetterCapacity')
.is(eq(out('has-letter').values('totalLetters').sum())
но похоже, что предикат eq или любой из предикатов (lte, lt, gte) не допускают обходов.Я попытался сделать что-то вроде двойного выражения «где» - «где - то где», но в итоге получилось немного сумасшедшим.
Я использую лазурный космос, db gremlin.Как правильно использовать свойство в обходе в качестве сравнения суммы?