我有一个大型 Neo4j 数据库,其中包含各种数字信息,我想对其执行计算(例如总和、平均值等)。不幸的是,我没有意识到 Cypher 不允许类型转换,并将数字属性存储为字符串。有什么方法可以对这些属性进行计算吗?要么即时转换/转换,要么以某种方式彻底检查整个数据库以将所有这些属性转换为整数。
非常感谢, BSG
更新 我通过编写一个简单的 Java 程序来迭代索引、找到所需的属性并将它们重新存储为整数来解决这个问题。然而,由于 Jatin 下面的答案绝对是正确的(也许是更好的解决方案;我只是想能够使用 Cypher),所以我会接受它作为答案。非常感谢!
最佳答案
简单。请改用 Java API。
for(Relationship r: node.getRelationships()){
Integer p = (Integer) r.getProperty("value");
}
这是假设Relationship
包含以Integer
作为属性的属性。如果没有,则获取字符串并对字符串执行 Integer.parseInt
操作。
这是最简单的方法。一般来说,我更喜欢 Java api 而不是 cypher。更好的性能和更多的控制
关于java - 更改neo4j数据库中属性的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237292/