会社、グループ、ウォッチリスト、メンバーのグラフを調べているクエリがあります。データベース内のデータについては、geoff形式のダミーデータの要点を参照してください。また、誰でもプレイできるようにコンソールneo4jをセットアップしました。
クエリの目的は、グループのリストと、グループおよび関連するウォッチリストと関係のあるメンバーの数(メンバーは個人または会社の総称です)を取得することです。
以下のクエリで正しいアラート番号を取得していますが、メンバーやウォッチリストがないため、「空のグループ」がありません。さまざまな関係をオプションにしようとしましたが、グループに関連するウォッチリストを使用しているため、アラートの数が間違ってしまいます。クエリを作成する方法を無数に試しましたが、問題を回避できません。
START company=node(233), group=node:node_auto_index("_type:group")
MATCH company-[:OWNS]->group-[?:LINKED_TO]->watchlist-[:WATCHING|APPOINTMENT*1..2]-member<-[:WATCHING]-group
RETURN group, COUNT(DISTINCT(member)) as alerts
ORDER BY group.name
理想的には、グループをメンバーに接続し、次にウォッチリストに接続するパスセグメント全体をオプションとして作成したいのですが、ドキュメントでその方法を見つけることができないか、それが不可能です。2つのクエリを実行する以外に、これを回避する方法はありますか?
正しい結果は、グループとアラートが次のようになることです。
Big Dot Coms, 1
Big Hitters, 4
Empty group, 0
Old CEOs, 1