单顶点上的Gremlin属性数学

单顶点上的Gremlin属性数学,gremlin,amazon-neptune,Gremlin,Amazon Neptune,我正在尝试对顶点的属性进行一些数学运算。我的解决方案在Gremlin控制台中工作,但在JavaScript中运行时会抛出一个错误 gremlin> g.addV("trip").property(single, "trackLength", 100).property(single, "travelDistance", 75).property(single, "carWeight", 10) ==>v[f8b42b9d-9053-2838-808d-ba14606b8390]

我正在尝试对顶点的属性进行一些数学运算。我的解决方案在Gremlin控制台中工作,但在JavaScript中运行时会抛出一个错误

gremlin> g.addV("trip").property(single, "trackLength", 100).property(single, "travelDistance", 75).property(single, "carWeight", 10)

==>v[f8b42b9d-9053-2838-808d-ba14606b8390]

gremlin> g.V("f8b42b9d-9053-2838-808d-ba14606b8390").property(single, "carFactor", __.project("trackLength", "travelDistance", "carWeight").by("trackLength").by("travelDistance").by("carWeight").math("(trackLength - travelDistance) * carWeight")).valueMap()
在控制台中运行时,我得到了预期的结果:

==>{trackLength=[100], travelDistance=[75], carWeight=[10], carFactor=[250.0]}
但是,当我在JS中运行此命令时,我得到一个错误:

TypeError:uuuuu.project(…).by(…).by(…).by(…).by(…)。数学不是 作用


小精灵版本
3.2.10
。我尝试升级到
^3.4.0
,但遇到了一个单独的问题。

数学()步骤仅在3.3.1上进行,因此如果您使用3.2.10,这将不起作用。也许可以尝试3.3.5,看看
math()
是否在那里工作。

可能还值得注意的是,对于简单的算术,如加法、乘法、减法,fold()步骤可以像
g.V(1).sack(assign).by('some-property').sack(mult).by(常量(2)).sack()一样使用。