我使用ogm:
通过Py2neo v3查询Neo4joutput = graph.run(" MATCH(m:列{name:' code'}),(n:列{name:' locale_language_cd'}), p = shortestPath((m) - [rels:PART_OF *] - (n))RETURN p")。evaluate()
打印(输出)
这正确地做了我想要的,但节点不清晰
(f0b4322) - [:PART_OF] - GT;(f86202d)LT - [:PART_OF] - (a16fb7b) - [:PART_OF] - GT;(b3562af)LT - [:PART_OF] - (a7bfe43)
如果我再次运行代码:
(b539883) - [:PART_OF] - GT;(c83d89b)LT - [:PART_OF] - (f2adac1) - [:PART_OF] - GT;(fd469a6)LT - [:PART_OF] - (e373bf4)
以下链接指向Neo4j中的数据:Neo4j output with same search parameters
每次运行代码时输出都不同,我希望用GraphObject名称(它们的主键)替换数字。
答案 0 :(得分:0)
由于你只是查询匹配name = code和name ='locale_language_cd'的节点,想象一下你从一大袋苹果中挑选一个随机的苹果.. apple .. mmmm ...... < / p>
每次进入时,你都会得到一个不同的苹果 路径也一样。你不是要求'shortestPath'或任何东西。你有效地要求数据库选择n&amp;&amp;和'之间的'你找到的第一条路径'。米。
如果您想获得更一致的结果,请在任一节点上按主键搜索,或按其他属性排序,然后选择“第一个”可用...
要回答第二个问题,而不是打印结果集(即“路径”对象),而是返回并打印节点。
OR,使用内置函数来迭代结果。
类似的东西:
for x in results:
p = x['p'] # This is the path
print p
查看p
中的内容