2
はここに私のモデルのget: (:A)<--(:B)<-[:R {timestamp}]-(:C {number})
サイファー - 最新のノード
私は1つのCYPHERクエリで実現しようとしている何が最新R.timestamp(またはC.numberによると、最新のCノードを取得することです)を、与えられたAノードおよびすべてのBノードに対して行う。それは最高のR.timestampを持つ各Bに関連する1つのA、複数のBsおよび1つのCを返す。また、Cノードに関係なくBノードを返すのが最も良いでしょう。
SQLでは、グループごとにn行だけを返すようにグループ化しますが、COLLECTまたはUNWINDで十分な経験はありません同じ結果を達成する。
ありがとう、それはそれを解決します。私は 'last()'関数を見つけませんでした。あるいは、順序(DESCまたはASC)に沿って演奏し、 'head()'で 'last()を切り替えることも可能です。 (c.f. https://neo4j.com/docs/developer-manual/current/#query-function)。 これで、CノードがないBノードは返されません。私は結果を調査し、ここに掲載します。 – Rwanou
私はリレーションプロパティのフィルタリングとデッドエンドBsの両方を扱うことができます: 'MATCH(a:A {名前:{param}})< - (b:B) a、b a、b、r、cを含む ORDER BY r.end DESC WITH a、b、head(collect(c:C) )))as most_recent_c、head(collect(r))as most_recent_r リターンa、b、most_recent_c、most_recent_r; – Rwanou