【问题标题】:Relationship shown in Neo4j although it shouldn't [duplicate]Neo4j中显示的关系虽然它不应该[重复]
【发布时间】:2018-01-14 12:31:51
【问题描述】:

我创建了一个小型数据库,其中包含三个节点,Abraham、Isaac 和 Jacob。亚伯拉罕是以撒的父亲,以撒是雅各的父亲。

现在我执行以下查询:

MATCH (a:Person), (i:Person)
WHERE a.name='Abraham' and i.name='Isaac'
RETURN a, i

从 Neo4J Web 界面运行查询会显示两个节点之间的父关系:

这很奇怪,因为我没有要求任何关系。 JSON 响应也不包含关系:

[{
    "keys": [
        "a",
        "i"
    ],
    "length": 2,
    "_fields": [
        {
            "identity": {
                "low": 0,
                "high": 0
            },
            "labels": [
                "Person"
            ],
           "properties": {
               "name": "Abraham"
           }
      },
      {
          "identity": {
              "low": 1,
              "high": 0
          },
          "labels": [
              "Person"
          ],
          "properties": {
              "name": "Isaac"
          }
      }
  ],
  "_fieldLookup": {
      "a": 0,
      "i": 1
  }
}]

为什么 Neo4J 会显示这种关系?我怎样才能让它停止?我正在尝试创建一个返回一组节点之间各种关系的查询,我真的不希望 Neo4J 干扰并添加自己的关系。

【问题讨论】:

  • 这是我第一次使用relationships 标签。从没想过我会在 Stack Overflow 上寻求关系建议...
  • 不相关,是重复的。我已经投票结束(事实证明我无法真正结束自己的问题......)

标签: neo4j cypher relationships


【解决方案1】:

这只是 Neo4j 浏览器的可视化方式,仅此而已。由于您拥有两个节点,Neo4j 拥有它需要的一切(指针)来知道存在关系(并显示它)。如果您以编程方式处理结果(在 Java 或其他语言中......因为我假设 Neo4j 浏览器不会是“生产”结果,所以您必须这样做),您将能够按照您的意愿处理结果。如果您只对名称而不是实际节点感兴趣,那么就这样做

MATCH (a:Person), (i:Person)
WHERE a.name='Abraham' and i.name='Isaac'
RETURN a.name, i.name

希望这会有所帮助。

问候, 汤姆

【讨论】:

    猜你喜欢
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2015-02-12
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多