这是我的 Cypher 声明:
match (first1:ent) where first1.nodeid in ['aab40c4d65d5c0a428ed84dc0109b0c4']
match (first2:ent) where first2.nodeid in ['000415fee2b0272cdcc2439f521b2e2e']
CALL apoc.create.vRelationship(first1,'teninvmerge',{conprop:'11'},first2) YIELD rel
RETURN rel,rel.conprop
如何获取我直接设置的虚拟边的属性?
不知道是不是我的语句写得有问题,还是APOC 3.5版本不支持直接查询边属性,查了官方文档也没找到相关信息。
实际上,可以获取虚拟节点和关系的属性,如虚拟节点和关系文档页面中所述。Neo4j 3.5 已经过时了,我无法轻松确定这些功能是否适用于该版本。但它们至少应该适用于 neo4j 版本 4.1+。
请注意,在某些情况下,常规 Cypher 函数也能正常工作(例如,这些函数已验证可在版本 5.x 中工作:
ID(vnode)
和TYPE(vrel)
)。但这可能取决于您使用的 neo4j 版本,因此如果您使用的是旧版本,最好坚持使用记录的 APOC 函数。例如,至少在 neo4j 4.1+ 中,这应该有效:
该函数或过程不返回属性(如下面来自 neo4j github 的核心代码所示)。您可以使用 startnode、endnode、type 和 id(rel),但不能使用属性。
但是,您可以执行类似下面的操作(这是一种 hack)。我分配了一个变量 prop = {conprop:'11'},然后像 prop.conprop 一样以字典的形式访问 prop。
结果:
取自 neo4j 的代码: