【问题标题】:Creating node in py2neo shows up blank in Neo4j在 py2neo 中创建节点在 Neo4j 中显示为空白
【发布时间】:2016-09-04 16:06:47
【问题描述】:

我是 Neo4j 和 py2neo 的新手。我像这样使用 GraphObject 模型:

class Capability(GraphObject):
    __primarykey__ = "term"

    term = Property()

    child_of = RelatedTo("Capability")
    parent_to = RelatedTo("Capability")

创建“能力”后:

c = Capability()
c.term = name
graph.push(c)

在 Neo4j 浏览器中查询数据库给了我这个:

节点是空白的。此外,如果我将模型更改为:

class Capability(GraphObject):
    __primarylabel__ = "name"
    __primarykey__ = "term"

    term = Property()

    child_of = RelatedTo("Capability")
    parent_to = RelatedTo("Capability")

primarylabel”我在 Neo4J 中的节点中得到了预期的名称,但该节点不再被视为“能力” - 这意味着我也无法搜索“能力” :

...这是有道理的,因为我覆盖了主标签,但奇怪的是,我在 Neo4J 中看到 Capability 标签的唯一方法是不将节点视为 Capability。

所以问题是:在 py2neo 中,如何根据模型创建一个被视为能力的节点,以及在 Neo4J 节点图中显示术语标签(而不是空白)?

【问题讨论】:

    标签: python neo4j graph-databases py2neo


    【解决方案1】:

    这实际上只是用户界面中的一个简单调整。 (2 秒修复)

    在顶部的标签栏中单击要影响的节点标签类型。 窗口底部将出现一个栏,您可以在其中选择颜色、大小和标题,以设置您在 UI 中看到的节点的格式。

    因此,单击您在“标题”旁边看到的作为选项的属性,它将成为该类型节点上显示的内容。

    【讨论】:

      【解决方案2】:

      经过数小时试图弄清楚我对 Neo4j 和上述问题的不完全理解 - 我终于弄明白了:“能力”是某种保留字!

      一旦我将类名从“Capability”更改为“CapabilityZ”,它就开始按预期工作。哎哟。

      仍然感到困惑,因为“能力”不在任何地方的文档中......

      希望这能拯救一些像我这样的可怜人。

      【讨论】:

      • 据我所知,“能力”不是保留字。我刚刚在我的 Neo4j 实例中添加了一个 :Capability 节点,没有遇到任何问题。如果存在某种保留字冲突,则可能不在 Neo4j/Cypher 中。也许它与您之前的能力定义相冲突?
      • ...事实上,“Cap”和“CapabilityNode”也引起了问题。仅当我将课程称为“术语”时才起作用。真是令人沮丧的奇怪!
      • @InverseFalcon 这不是在 Neo4j 级别,而是在使用 py2neo 库时发生。我不认为这是冲突,因为“Cap”也不起作用(当我第一次使用它时)。 :-/ 我确信我错过了一些东西——因为这太奇怪了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多