Neo4j / CYPHER:ノード、その関係、およびターゲットノードからいくつかのプロパティを効率的にクエリするにはどうすればよいですか?

アンドレアスミューラー

ノードのセット、それらの属性のサブセット、それらの関係、およびそれらの属性のいくつかを持つターゲットノード(JavaからCYPHERを介してRESTを介して)をクエリしたいと思います。私の考えは次のとおりでした:

MATCH a WHERE id(a) IN {ids}
OPTIONAL MATCH (a)-[r]->(b)
RETURN id(a), a.name, a.attr1, r.attr2, id(b), b.name

これで、すべての関係の「行」が取得されましたが、すべてのノード「a」のデータが複数回含まれています。

ノード「a」の属性が1回だけ転送されるように、このようなクエリを実行するためのより良い方法はありますか?1つのアイデアは、2つの別々のクエリを作成することですが、WHERE条件がもう少し複雑な場合は、2回実行される可能性があります。

FrantišekHartman

収集機能を使用します。

http://neo4j.com/docs/stable/query-aggregation.html#aggregation-collect

MATCH a WHERE id(a) IN {ids}
OPTIONAL MATCH (a)-[r]->(b)
RETURN id(a), a.name, a.attr1, collect([r.attr2, id(b), b.name])

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ