Gremlin中的按位运算符

问题描述

Gremlin是否在where()支持按位运算符(如property & flag > 0)?也许像where(bitIsSet('property',2))

apache docs中找不到与之相关的任何内容,但至少感到奇怪的是,该基本操作不会在Gremlin中实现。

解决方法

否-在Gremlin中没有像位操作符那样的步骤。当然,如果您的图形支持此类功能,则可以使用lambda(尽管CosmosDB不支持):

gremlin> g.inject([a:-1,b:-1]).filter{(it.get().a & it.get().b) > 0}
gremlin> g.inject([a:00111100,b:00001101]).filter{(it.get().a & it.get().b) > 0}
==>[a:37440,b:577]

对于该基本操作不会在Gremlin中实现至少感到奇怪。

是的-我想这很简单,但是自从项目开始以来,我还没有听说过有人要求这种功能。 Gremlin还缺少其他一些重要的运算符,例如基本的字符串连接和日期运算-肯定需要这些运算符。