[英]neo4j subtract elements of a path
我正在嘗試在Cypher(Neo4)中使用此查詢:
MATCH p=(n:BP)-[:Selected]-(g:MOL)-[:Selected]-(e:BP) WHERE n.NameExp='Bos_RM' AND e.NameExp='Jac_RM' AND NONE(x IN nodes(p) WHERE x.NameExp='Jac_AGM' OR x.NameExp='Bos_SM') RETURN n,e,g limit 100
也就是說,我想排除path(p)中具有屬性“ Jac_AGM”和“ Jac_SM”的某些節點。 我正在使用Neo4j版本2.1.3。
謝謝! 最好的祝福,R。
根據您的查詢,您已經提到了n和e個節點的NameExp屬性值。 因此,顯而易見的是,您不希望包含具有給定名稱的節點屬於g:MOL標記的節點集,可以像下面這樣簡單地將其消除...
MATCH p=(n:BP)-[:Selected]-(g:MOL)-[:Selected]-(e:BP)
WHERE n.NameExp='Bos_RM' AND e.NameExp='Jac_RM'
AND NOT g.NameExp IN ['Jac_AGM','Jac_SM']
RETURN n,e,g limit 100
還有一個顯式選項可以filter
集合p
節點:
MATCH p=(n:BP)-[:Selected]-(g:MOL)-[:Selected]-(e:BP)
WITH FILTER(x IN nodes(p): x.NameExp NOT IN ['Jac_AGM','Bos_SM']) AS pp, n, e
WHERE n.NameExp='Bos_RM' AND e.NameExp='Jac_RM'
RETURN n,e,g limit 100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.