私はCypher /グラフDBを初めて使いました。私は、トラバースを理解するための例を作成しましたが、それを得ていません。Cypher:グループ化/関係
//Cypher below to create nodes.
(`0` :Person {id:'74474',Name:"Mr. Dan"}) ,
(`1` :Company {id:'1234',Name:"Company A"}) ,
(`2` :Company {id:'1111',Name:"Company B"}) ,
(`3` :Person {id:'0844',Name:"Mr.X"}) ,
(`4` :Person {id:'3455',Name:"Mr. Jack"}) ,
(`5` :Person {id:'748222',Name:"Mr.Y"}) ,
(`0`)-[:`owns` {amt:'50%'}]->(`1`),
(`4`)-[:`owns` {amt:'30%'}]->(`1`),
(`2`)-[:`owns` {amt:'20%'}]->(`1`),
(`3`)-[:`owns` {amt:'30%'}]->(`2`),
(`5`)-[:`owns` {amt:'70%'}]->(`2`)
// end
クエリ: MATCH(P:人) - [O:所有している*] - >(C:会社) どこc.Name = "A社" リターンP、O //
これは私に "会社A"を所有するすべての "人"を与えますが、私は各人の "所有権"を得たいと考えています。
関係 "o"の値を抽出または集計することはできません。簡単だと思ったが、私は挑戦されたようだ!
提案がありますか?
私たちのために読みやすいようにコードをフォーマットしてください! – Skam
MATCH(p:Person) - [o:owns *] - >(c:Company)ここで、c.Name = "A社"がpを返します。o、amt、c – logisima
@ logisima-は動作しません。 cを加える。私は各人のために "amts"を集計しようとしています。したがって、Personの場合、関係パスに2つの "amts"がある場合は、集計する必要があります(この場合は乗算する必要があります)。しかし、私はそれらを集めることができる場合でも、それはスタートです。 –