【问题标题】:How to use "MATCH.. CREATE UNIQUE.." with neography如何将“MATCH.. CREATE UNIQUE..”与neography一起使用
【发布时间】:2014-02-18 18:03:07
【问题描述】:

我正在尝试编写一个导入器脚本,该脚本将采用 MySQL 结果集并在我的 Neo4J DB 中添加节点和关系。为简化起见,我的结果集包含以下字段:

  • application_id
  • 金额
  • 申请日期
  • account_id

我想创建一个带有application_idamountapplication_date 字段的Application 标签节点和另一个带有Account 标签和account_id 字段的节点以及它们之间的关系。

我的 SQL 查询来自应用程序表,所以我不怕那里出现重复,但 account_id 可以出现多次,我显然不想为此创建多个节点。

我正在使用neography(但如果有更简单的东西,我愿意切换)。实现这一目标的最佳(最简单)方法是什么? 我的脚本将在数据库启动之前删除数据库,因此无需处理剩余部分。

我应该在之前创建一个索引并使用create_unique_node吗?
我想我可以使用“MATCH .. CRAETE UNIQUE ..”在 cypher 中做我想做的事,在 neography 中相当于什么?我不明白 index_name 是如何进入等式的...
我应该还是不应该对 Account 定义约束?

非常感谢, 这是我第一次使用图形数据库,如果我在这里遗漏了一个概念,我们深表歉意..

【问题讨论】:

    标签: neo4j neography


    【解决方案1】:

    根据您的描述,您应该使用 Neo4j 2.0 附带的约束:http://docs.neo4j.org/chunked/milestone/query-constraints.html#constraints-create-uniqueness-constraint

    CREATE CONSTRAINT ON (account:ACCOUNT) ASSERT account.account_id 是唯一的

    然后您可以对所有插入使用 MATCH .. CREATE UNIQUE 子句。您可以使用neography 提交密码查询,请参阅此处的示例:https://github.com/maxdemarzi/neography/wiki/Scripts-and-queries

    【讨论】:

    • 您知道neography 中是否有任何语法可以“匹配”和“创建独特”?还是我必须使用“执行查询”?
    • 将“execute_query”与您的密码查询一起用作参数。 Neoography 只是 Neo4j 的 REST 端点的一个包装器,它没有额外的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2020-04-06
    • 2018-11-15
    相关资源
    最近更新 更多