python - 尝试在特定关系 id 下查找返回列的最大值时出现 Cypher 查询问题
问题描述
我面临一个非常奇怪的问题,我正在调用相同的函数get_objects()
4
时间并max
从返回的列中获取10172
,应该作为最大值返回的项目仍然存在于结果列表中,但它返回给我另一个9998
不是最大。而对于使用另一个参数对同一函数的其他两次调用,它给了我正确的结果。
我已经在 Neo4j 浏览器中运行并测试了该语句,它给了我同样的问题,就像那个节点不存在一样,但是当我单独搜索10172
应该作为最大值返回的那个节点时,它确实存在于数据库中但是为什么它不是在最终结果中将我作为最大值返回吗?
我还从 Neo4j 中提取了 CSV 文件,以仔细检查该特定节点的关系和存在。它存在。我哪里错了?
我有一个数据作为节点类型存储在图形数据库中4
,它们与不同4
的关系和关系id
属性连接,(1,2,3,4)
在密码查询中我试图获得最大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,0,0
authors=get_objects(1).max()
terms=get_objects(2).max()
venues=get_objects(3).max()
papers=get_objects(4).max()
return authors,terms,venues,papers
def main():
m = find_max_1()
if __name__ == "__main__":
main()
输出是:
[9998, 14669, 10190, 9999]
预期输出:
[10172, 14669, 10190, 15648]
任何形式的帮助将不胜感激!
提前致谢。
解决方案
问题是返回的结果是字符串类型,并且max()
正在计算之间的最大值strings
而不是int
.
推荐阅读
- github - 无法创建 GitHub 帐户
- php - PHP 不会从 Mysql 输出 isset 数组。虽然通过 print_r 显示了数组
- javascript - 使用 jQuery 检查一个复选框(只有类型和名称)
- reactjs - 通过带有 Typescript 的自定义钩子公开上下文时返回未定义的上下文
- amazon-cognito - 如何通过 amazon cognito 托管登录传递 url 参数
- apache - 如何使用 Apache 通过 ip 阻止
- javascript - 对本地托管文件进行子资源完整性检查?
- r - Delete incomplete cases in nested dataframe using map function from purrr
- visual-studio - 无需再次安装即可重建 vcpkg
- java - 我需要帮助了解此代码的工作原理