Database 小精灵忽略存储值

Database 小精灵忽略存储值,database,groovy,graph,gremlin,Database,Groovy,Graph,Gremlin,我不熟悉gremlin并尝试查询,但据我观察,存储值总是被忽略 我也尝试过存储、聚合和,但都给了我错误的值 g、 V.has''uuuu typeName','avro_schema'。其中localout''uuu avro_record.fields''xm'.localout'classifiedAs'。has''uuu typeName','DataClassification'.count.iseq1.count.iseqselect'xm.size 这使得“xm”的大小始终为0 我希

我不熟悉gremlin并尝试查询,但据我观察,存储值总是被忽略

我也尝试过存储、聚合和,但都给了我错误的值

g、 V.has''uuuu typeName','avro_schema'。其中localout''uuu avro_record.fields''xm'.localout'classifiedAs'。has''uuu typeName','DataClassification'.count.iseq1.count.iseqselect'xm.size

这使得“xm”的大小始终为0

我希望大小“xm”的值等于每个avro_模式的传出边数,边标签为“u avro_record.fields”

如上所述,将查询更改为:

g、 V.has''uuuu typeName','avro'u schema'.wherelocalout''uuu avro'u record.fields'.localout'classifiedAs'.has''uuuu typeName','DataClassification'.count.iseq1.count.iscountlocal

现在得到的是空结果

编辑:

此外,我还对打印动态值作为副作用表示怀疑

g、 V.has''uuuu typeName','avro_schema'.wherelocalout''uuu avro_record.fields'.localout'classifiedAs'.has''uuuu typeName','DataClassification'.count.iseq1.count.sideEffect{println countlocal}.iscountlocal

输出:

[CountLocalStep]


正如我所期望的,countlocal的实际值在哪里。调试gremlin查询的最佳实践是什么?

在遍历过程中有一些事情是不起作用的。首先,.size不是一个小精灵的步骤,你可能正在寻找.countlocal。其次,eq不接受动态值,它只适用于常量值。阅读where步骤,了解如何与动态值进行比较

更新

要比较两个计数值,请执行以下操作:

g.V().has('__typeName','avro_schema').filter(
    out('__avro_record.fields').fold().as('x').
    map(unfold().
        out('classifiedAs').has('__typeName', 'DataClassification').fold()).as('y').
    where('x', eq('y')).
      by(count(local)))

已更新查询..现在得到空结果。您仍在使用eq,尽管它现在是隐式的。isvalue与iseqvalue相同。仍然不太清楚如何比较两个动态生成的计数值。这有解决办法吗?我刚刚添加了一个示例。