如何解决尝试在特定关系 id
我面临一个非常奇怪的问题,我正在调用同一个函数 get_objects()
4
次并从返回的列中获取 max
,项目 10172
应该是返回的最大值仍然存在于结果列表中,但它返回给我的不是最大值的另一个项目 9998
。而对于使用另一个参数对同一函数的另外两次调用,它给了我正确的结果。
我已经在 Neo4j 浏览器中运行并测试了该语句,它给了我同样的问题,就像那个节点不存在一样,但是当我单独搜索应该作为最大值返回的那个节点 10172
时它确实存在于数据库中,但为什么它在最终结果中没有将我返回为最大值?
我还从 Neo4j 中提取了 CSV 文件,以仔细检查该特定节点的关系和存在。它存在。我哪里出错了?
我有一个数据存储在图形数据库中作为 4
类型的节点,它们与不同的 4
关系和关系 id
属性连接为 (1,2,3,4)
In cypher查询我试图针对关系 paper id
获得最大 1
。问题似乎存在于关系 1
和关系 4
调用中。但是我在数据库中重新检查了这些节点存在于这些特定关系下。
这是我迄今为止尝试过的。
def get_objects(x):
par = str(x)
query = ''' MATCH (p)-[r]->(a) WHERE r.id = $par RETURN a.id '''
resultNodes = session.run(query,par = par)
df = DataFrame(resultNodes)
return df[0]
def find_max_1():
authors,terms,venues,papers=0,0
authors=get_objects(1).max()
terms=get_objects(2).max()
venues=get_objects(3).max()
papers=get_objects(4).max()
return authors,papers
def main():
m = find_max_1()
if __name__ == "__main__":
main()
输出为:
[9998,14669,10190,9999]
预期输出:
[10172,15648]
任何形式的帮助将不胜感激!
提前致谢。
解决方法
问题返回的结果是字符串类型,max()
正在计算 strings
而不是 int
之间的最大值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。