如果我們按同樣類型的關係的Cypher查詢,使其中的幾個節點的屬性,如果它們具有相同類型的關係
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))
實例節點找到與其他節點相關的節點必須,通過名稱(這很容易)通過索引內的節點類元數據和實例名稱(這也很容易)以及列表類型.name = ..和列表類型 .name = ..和listype .name = ..這裏是問題:
如果我嘗試尋找只爲例如與名稱MYINSTANCE誰是RELATED_TO一個所有者與名d,在這裏我只quering約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
,但如果我需要去尋找例如與名稱MYINSTANCE誰是RELATED_TO一個所有者與名稱d也關係到狀態與名X也關係到propertie與名Ÿ是有問題的查詢結果總是空的,有沒有什麼辦法來篩選大約兩個O 3或更多的nodes.properties(listype.name)如果他們是由相同類型的relatioship相關?
這樣的事情是不工作
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