2016-05-02 8 views
2

約10分前にNeo4j 3.0.0をダウンロードしてインストールしました。私はNeo4jでグラフデータベースを作成しています。'ラベルまたはプロパティを持つノードはここで作成できません。変数はすでにこのコンテキストで宣言されています '、Neo4j

私は一度に3つのステートメントを実行しようとすると、私はエラーを取得:

Can't create node 'famA' with labels or properties here. The variable is already declared in this context

(私は定義ノードに配置しようとしてるところです)。

問題の内容がわかりません。私が最初に考えたのは、前にこの問題があったので、ブロック間で変数を持ち歩く必要があるということでしたが、それは別のケースであるようです(申し訳ありませんが、私はまだNeo4jの新機能です)。

famAで起こっていることを見ると、一度だけ宣言されています。構文は大丈夫ですか?

先週、私のスクリプトはうまくいきましたが、これは新しいバージョンで問題になる可能性がありますか?

誰にもアイデアはありますか?ありがとう。 ( - それはノード作成の目安になりますが、このノードは、以前に作成したラベルとmergeを使用している場合)famA mergeから

// 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) 

答えて

2

削除ラベル:

ここ

は、DBを作成するためのコードです
// 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) 
0

私はこれを変更しなければならなかった似たような状況だった:

MATCH (ks1:KbWordSequence) 
MATCH (ks2:KbWordSequence {kbidseq: ks1.kbidseqnxt}) 
CREATE (ks1)-[:NEXT]->(ks2) 
MERGE (ks1:KbWordSequence)-[:NEXT]->(ks2:KbWordSequence {kbidseqnxt: ks1.kbidseq}) 
をこれまで

MATCH (ks1:KbWordSequence) 
MATCH (ks2:KbWordSequence {kbidseq: ks1.kbidseqnxt}) 
CREATE (ks1)-[:NEXT]->(ks2) 
MERGE (ks1)-[:NEXT]->(ks2) 
     SET ks2.kbidseqnxt = ks1.kbidseq 

は基本的に私は二MERGE文でノード値を設定することが許されなかった、私はそのマージのSETを追加する必要がありました。

関連する問題