【问题标题】:Neo4j - convert node attribute storage from string to number?Neo4j - 将节点属性存储从字符串转换为数字?
【发布时间】:2014-01-23 16:34:03
【问题描述】:

我有一个 Neo4j 数据库,它最初是使用 Rest::Neo4p Perl 模块从 Perl 脚本创建的。由于某些未知原因,节点上的属性之一被创建为字符串,即使所有节点上的所述属性的值都是数字的(通过对该属性的 Cypher 正则表达式搜索进行验证)。

有没有一种简单的方法可以将属性的存储类型从字符串转换为数字而不是重新创建数据库?也许一个 Cypher 查询会使用文本属性中的值创建一个数字类型的新属性?

谢谢,

克里斯

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    我不确定您如何(以及是否)可以使用 Cypher 做到这一点,但您可以使用 Gremlin 转换属性:

    g.V.sideEffect { it.my_property_name = Integer.parseInt(it.my_property_name) }.iterate()
    

    您还可以使用 Java 扩展或仅以嵌入式模式加载数据库并使用 Java 遍历进行转换。

    【讨论】:

    • 在发布您的答案之前,我最终使用相同的 Rest::Neo4p 模块编写了一个小型 Perl 脚本来处理检索属性、删除它,然后将其重新创建为数字。但是您的解决方案也会奏效。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 2011-12-10
    • 2011-08-28
    • 2013-01-14
    相关资源
    最近更新 更多