gpt4 book ai didi

neo4j - '无法在此处创建带有标签或属性的节点。该变量已经在 Neo4j 中的上下文中声明

转载 作者:行者123 更新时间:2023-12-04 00:10:17 25 4
gpt4 key购买 nike

大约十分钟前,我刚刚下载并安装了 Neo4j 3.0.0。我正在用 Neo4j 创建一个图形数据库。

当我尝试一次运行 3 个语句时,出现错误:
Can't create node 'famA' with labels or properties here. The variable is already declared in this context
(这是我试图放入定义节点的地方)。

我不确定问题是什么。我的第一个想法是我需要跨块携带变量,因为我以前遇到过这个问题,但这似乎是另一种情况(抱歉,我还是 Neo4j 的新手)。

看看是怎么回事 famA ,它只声明一次,看起来语法没问题?这里没问题:

// Create the definition node:
CREATE
(famA:Family {family_ID:'A'})
WITH famA
MATCH (a:Person {name:"a"})-[*]-(b:Person)
MERGE (famA:Family)<-[:FAMILY]-(a)
MERGE (famA:Family)<-[:FAMILY]-(b)

我还想指出,上周我的脚本运行良好——也许这是新版本的一些问题?

有没有人有任何想法?谢谢。

这是创建数据库的代码:
// First family:  family_ID = A.  This family has 3 members with Alzheimers who are not alive, and more than half of them are Left handed
CREATE
( a:Person {name: 'a', id:'1', Gender:'Male', Diagnosis: 'Alzheimers', `Is Alive?`: 'No', Handedness: 'Left', `Risk Score`: 'PURPLE'}),
( aSP:Person {name: 'aSP', id:'2', Gender:'Female', Diagnosis: 'Alzheimers', `Is Alive?`: 'No', Handedness: 'Left', `Risk Score`: 'GIRAFFE'}),
( b:Person {name: 'b', id:'3', Gender:'Male', Diagnosis: 'Normal', `Is Alive?`: 'No', Handedness: 'Left', `Risk Score`: 'PURPLE'}),
( bSP:Person {name: 'bSP', id:'4', Gender:'Female', Diagnosis: 'Alzheimers', `Is Alive?`: 'No', Handedness: 'Right', `Risk Score`: 'GIRAFFE'}),
(bSib:Person {name: 'bSib', id:'5', Gender:'Female', Diagnosis: 'MCI', `Is Alive?`: 'No', Handedness: 'Left', `Risk Score`: 'GIRAFFE'}),
( c:Person {name: 'c', id:'6', Gender:'Male', Diagnosis: 'MCI', `Is Alive?`: 'No', Handedness: 'Right', `Risk Score`: 'PURPLE'}),
(cSib:Person {name: 'cSib', id:'7', Gender:'Female', Diagnosis: 'Alzheimers', `Is Alive?`: 'Yes', Handedness: 'Left', `Risk Score`: 'GIRAFFE'})

CREATE
(a)-[:SPOUSE]->(aSP),
(b)-[:CHILD]->(a),
(b)-[:CHILD]->(aSP),
(b)-[:SPOUSE]->(bSP),
(bSib)-[:SIBLING]->(b),
(bSib)-[:CHILD]->(aSP),
(c)-[:CHILD]->(b),
(c)-[:CHILD]->(bSP),
(cSib)-[:SIBLING]->(c),
(cSib)-[:CHILD]->(bSP)

// Create the definition node:
CREATE
(famA:Family {family_ID:'A'})
WITH famA
MATCH (a:Person {name:"a"})-[*]-(b:Person)
MERGE (famA:Family)<-[:FAMILY]-(a)
MERGE (famA:Family)<-[:FAMILY]-(b)

最佳答案

famA merge 移除标签(如果您使用带标签的 merge - 这将指示节点创建,但此节点之前已创建):

// Create the definition node:
CREATE
(famA:Family {family_ID:'A'})
WITH famA
MATCH (a:Person {name:"a"})-[*]-(b:Person)
MERGE (famA)<-[:FAMILY]-(a)
MERGE (famA)<-[:FAMILY]-(b)

关于neo4j - '无法在此处创建带有标签或属性的节点。该变量已经在 Neo4j 中的上下文中声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36990678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com