#gremlin #bitwise-operators #azure-cosmosdb-gremlinapi
#gremlin #побитовые операторы #azure-cosmosdb-gremlinapi
Вопрос:
Поддерживает ли Gremlin побитовые операторы в where()
(например property amp; flag > 0
)? Может быть, что-то вроде where(bitIsSet('property', 2))
.
Не удалось найти ничего об этом в документах apache, но кажется по меньшей мере странным, что эта базовая операция не будет реализована в Gremlin.
Ответ №1:
Нет — в Gremlin нет таких шагов, которые ведут себя как побитовый оператор. Конечно, вы могли бы использовать лямбда-выражение, если ваш график поддерживает такие вещи (хотя CosmosDB этого не делает):
gremlin> g.inject([a:-1,b:-1]).filter{(it.get().a amp; it.get().b) > 0}
gremlin> g.inject([a:00111100,b:00001101]).filter{(it.get().a amp; it.get().b) > 0}
==>[a:37440,b:577]
кажется по меньшей мере странным, что эта базовая операция не будет реализована в Gremlin.
Да, я полагаю, это просто, но я не думаю, что я когда-либо слышал, чтобы кто-нибудь просил эту функциональность с момента создания проекта. В Gremlin также отсутствуют некоторые другие важные операторы, такие как базовая конкатенация строк и операции с датой — они обязательно должны быть запрошены.