2016-03-07 79 views
0

在我的Neo4J數據庫中,我有一個名爲node_type的字符串屬性的節點,我的8000個左右節點中的99%具有'node'作爲它們的屬性值。在Neo4J中看起來不正確的字符串相等

我這是爲了返回節點的1%不具有財產價值的Cypher查詢:

MATCH (m:FooLabel) - [r:CHILD] -> (n:FooLabel) WHERE TRIM(m.node_type) <> 'node' 

這會將所有沒有'node'作爲其財產的節點值,但它也返回約46節點是'node'的屬性值:

enter image description here

如何將這些節點匹配謂詞?

回答

2

在截圖中,您正在對m.node_type進行字符串比較,但返回n

你的意思是比較m.node_typen.node_type

+0

在這種情況下,'m'和'n'是否有區別?我注意到,當我做'm.node_type ='node''時,我得到了8000多個結果。 – Dai

+2

是的,不同之處在於'm'是關係('r')輸出端的節點,'n'是關係'r'輸入端的節點。如果你想排除具有'node'的node_type'屬性的節點,那麼改變你的查詢來比較'n'和'm'的屬性:'... WHERE trim(n.node_type)<>'node'AND trim(m.node_type)<>'node'' –