Yam*_*XYZ 5 database cassandra gremlin scylla janusgraph
g.V()
.has('atom', '_value', 'red').fold()
.coalesce(unfold(), addV('atom').property('_value', 'red')).as('atom')
.out('view').has('view', '_name', 'color').fold()
.coalesce(unfold(), addE('view').from('atom').to(addV('view').property('_name', 'color')))
Run Code Online (Sandbox Code Playgroud)
给我一个错误:
The provided traverser does not map to a value: []->[SelectOneStep(last,atom)] (597)
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
添加此内容以防其他人遇到此情况。
当您使用 id 作为字符串from()
而不是顶点对象时,会发生此特定错误。
为了明白我的意思,作为一个简单的测试,运行以下 gremlin 查询:
g.addE('view').from('atom').to(addV('view').property('_name', 'color'))
然后运行这个查询:
g.addE('view').from(V('atom')).to(addV('view').property('_name', 'color'))
第一个查询会给您上述错误,第二个查询不会。
所以看起来当as()
后面跟着fold()
它时会删除步骤中设置的变量as()
。我用aggregate()
如下代替:
g.V()
.has('atom', '_value', 'red')
.fold().coalesce(
unfold(),
addV('atom').property('_value', 'red')
)
.aggregate('atom')
.out('view').has('view', '_name', 'color')
.fold().coalesce(
unfold(),
addE('view')
.from(select('atom').unfold())
.to(addV('view').property('_name', 'color'))
.inV()
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1325 次 |
最近记录: |