2016-09-21 7 views
-2

私は次のような関係を持っています:
(U:User) - [r:tagged {tagID、timestamp}](> P:Player {Name = 'Tom'})neo4j関連するプロパティを見つけるためにリレーションシップを使用する

User1 tagged player Tom,the tagID is 1 and the tagName is good 
User2 tagged player Tom,the tagID is 2 and the tagName is bad 

ノード等:
:私はすべてのtagNameをなどを見つけることができる方法と同じTAGIDを使用してタグ付けされた(Tタグ{TAGID、tagNameを})

tagID tagName 
1  Good 
2  Bad 

ノード 'タグ' との関係、良い、悪いなどのトムのような与えられた選手の名前に基づいて?私は以下のようなものを試してみます:

match (:User)-[r:tagged]->(P:Player{Name:'Tom'}),(t:tag) 
where t.tagID=r.tagID 
return t.tagName 
order by tagName desc 
limit 20 

そして私は構文エラーが出ます。私は何を期待

tagName 
Good 
Bad 
+0

をまだ非常に明確ではありません。説明の中でユーザーについて話しますが、質問の一部ではありません。また、あなたは何を試しましたか、そして、あなたが期待していたものの代わりに何を得ましたか? – peinearydevelopment

答えて

0

あなたの編集後、あなたのクエリはほぼ正しいように見えますが、ちょっとした調整が必要です。

構文エラーを追加する必要があるはずですが、スコープ内の変数または列ではない "tagName"だけを注文しようとしているからです( "t.tagName"

また、別のタグを使用することもできます。一致したタグの後ろのtagIDのどちらかで、別のタグを使用することもできます同じタグ。

これを試してみてください:

match (:User)-[r:tagged]->(:Player{Name:'Tom'}) 
with distinct r.tagID as tagID 
match (t:tag) 
where t.tagID = tagID 
return t.tagName AS tagName 
order by tagName desc 
limit 20 
0

より多くの情報がなくてもあなたの質問に答えるのは難しいです。 1.関係の説明にはproperty3はありません。 2.オブジェクトまたはその関係に関する実際の情報は含まれていません。 これは基本的に言うmatch(b {property0:'VALUE0'}) match(b)<-[r:{property1:'VALUE1', property2:'VALUE2'}]-(a) return a

、変数bを作成し、値に等しい値でproperty0を持つDB内のオブジェクトを割り当てる:

私の推測では、しかし、あなたがこのような何かをしたいです。次に、別の変数aを作成し、bとの関係を持つ値を割り当てます。ここで、関係はproperty1がVALUE1、property2がVALUE2です。 あなたが探しているものでない場合は、達成しようとしているものと受け取っているエラーの詳細を記入してください。

+0

詳細が追加され、前の質問には申し訳ありません。 – toblKr

関連する問題