【问题标题】:Change data type of property in neo4j database更改 neo4j 数据库中属性的数据类型
【发布时间】:2013-08-14 16:30:43
【问题描述】:

我有一个大型 neo4j 数据库,其中包含各种数字信息,我想对其进行计算(例如总和、平均值等)。不幸的是,我没有意识到 Cypher 不允许类型转换,并将数字属性存储为字符串。有什么方法可以对这些属性进行计算?即时转换/转换,或者以某种方式彻底检查整个数据库以将所有这些属性转换为整数。

非常感谢, bsg

更新 我通过编写一个简单的 Java 程序来遍历我的索引、找到所需的属性并将它们重新存储为整数来解决了这个问题。但是,由于下面 Jatin 的回答绝对正确(也许是更好的解决方案;我只是想能够使用 Cypher),我会接受它作为答案。非常感谢!

【问题讨论】:

  • 实际上 cypher 将数值存储为数值。你是如何添加它们的?
  • 我使用 Java 绑定创建了图形,并使用密码查询它。在存储它们之前,我将整数转换为 Java 中的字符串 - 数据库无法知道它们是什么。

标签: java type-conversion neo4j cypher


【解决方案1】:

简单。请改用 Java API。

for(Relationship r: node.getRelationships()){
   Integer p = (Integer) r.getProperty("value");
}

这是假设Relationship 包含以Integer 作为属性的属性。如果没有,则获取字符串并在字符串上执行Integer.parseInt

这是最简单的方法。一般来说,我更喜欢 Java api 而不是 cypher。更好的性能和更多的控制

【讨论】:

  • 我想到了这一点,但喜欢 Cypher 的简单性和交互性。一旦创建了数据库中所有此类属性的数据类型,是否有任何简单的方法可以更改它们?或者像 Cypher 这样的用于编写和运行常规 API 查询的任何工具?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2019-04-29
  • 2023-02-09
  • 1970-01-01
  • 2023-01-22
  • 2014-05-18
相关资源
最近更新 更多