问题描述
我正面临这个挑战,我有多个表单对象
{"fookey":"foovalue","barkey","barvalue"}
我想做的是为每个带有标签 foo
的条目插入一个节点,如下所示:
label: foo
value: foovalue
并添加标签为 bar
的节点(如果它们尚不存在)(基于 value
属性的相等性:
label: bar
value: barvalue
最终结果是创建了 foo
顶点和 bar
,然后添加边以连接它们,但目前我什至无法插入它们。
我的代码如下所示:
g.inject(object_list).unfold()\
.sideEffect(
addV("foo").property("value",select("foovalue"))
).sideEffect(
V().has('bar','value',select('barvalue')).fold().coalesce(
unfold(),addV('bar').property('value',select('barvalue'))
)
)
基本上,我们在 foo
中添加 sideEffect
节点,然后在另一个 sideEffect
中我们尝试使用 bar
插入尚不存在的 barvalue
节点{1}} 属性。
中断的步骤是 bar
sideEffect
,有错误:
The provided traverser does not map to a value: []->[SelectOnestep(last,barvalue)]
在旁注中,我还尝试了另一种方法,即使用 group by,类似于 tinkerpop 文档中的 this example。我认为它看起来更有意义,但我也无法让它工作
编辑:我在查询方面取得了进展,现在通过分组来完成
g.inject(object_list)\
.sideEffect(
.unfold().addV("foo").property("value",select("foovalue"))
.group("b").by("barkey")
).sideEffect(
V().has('fookey',select("b").unfold().select(Column.keys)).fold()
.coalesce(
unfold(),addV('fookey').property('value',select("b").unfold().select(Column.keys))
)
).next()
这似乎有效,但是只添加一个(第一个)bar
对象,即使有多个。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)