同じタイプの関係によって他のノードと関連付けられたノードがある場合
classmetadata<-INSTANCE_OF-instance(TheNodeINeed)-RELATED_TO->...................
- ->listype(The owner(name=d,etc))
- ->listype(The state(name=x,etc))
- ->listype(The propertie(name=y,etc))
- ->listype(The location(name=z,etc))
検索するインスタンス ノードは、その名前 (これは簡単です) とインスタンス名 (これも簡単です)およびlistype .name=.. とlistype .name=..によって、インデックス内のノード classmetadata によって検索する必要があります。とlistype .name=.. そしてここに問題があります:
dという名前の所有者である MyInstance という名前のインスタンスだけを探してみると、ここでは 1 つの listype ノードについてクエリするだけで問題ありません。このクエリは機能します。
START classmetadata = node:classes(name = "MyClassMetadata")
MATCH classmetadata<-[:INSTANCE_OF]-instance-[:RELATED_TO]->listype
WHERE instance.name="MyInstance" and listype.name = "d"
RETURN instance, listype
ORDER BY instance.name ASC skip 0 limit 10
しかし、名前dの所有者である MyInstance という名前のインスタンスを探す必要がある場合、名前xの状態に関連し、名前yのプロパティにも関連している場合、クエリの結果が常に空になるという問題があります。それらが同じタイプの関係によって関連している場合、約2つまたは3つ以上のnodes.properties(listype.name)を同時にフィルタリングする方法はありますか?
このようなものは機能していません
START classmetadata = node:classes(name = "MyClassMetadata")
MATCH classmetadata<-[:INSTANCE_OF]-instance-[:RELATED_TO]->listype
WHERE instance.name = "MyInstance" AND listype.name = "x"
AND listype.name = "y" AND listype.name="d" RETURN instance, listype
ORDER BY instance.name ASC skip 0 limit 10