Neo4J中看似不正确的字符串相等
在我的Neo4J数据库中,我有一个名为Neo4J中看似不正确的字符串相等,neo4j,Neo4j,在我的Neo4J数据库中,我有一个名为node_type的字符串属性的节点,在我的8000个左右的节点中,99%的节点将'node'作为其属性值 我有一个Cypher查询,用于返回1%没有该属性值的节点: MATCH (m:FooLabel) - [r:CHILD] -> (n:FooLabel) WHERE TRIM( m.node_type ) <> 'node' 匹配(m:doubabel)-[r:CHILD]->(n:doubabel)其中TRIM(m.node_类型
node_type
的字符串属性的节点,在我的8000个左右的节点中,99%的节点将'node'
作为其属性值
我有一个Cypher查询,用于返回1%没有该属性值的节点:
MATCH (m:FooLabel) - [r:CHILD] -> (n:FooLabel) WHERE TRIM( m.node_type ) <> 'node'
匹配(m:doubabel)-[r:CHILD]->(n:doubabel)其中TRIM(m.node_类型)'node'
这将返回所有未将'node'
作为其属性值的节点,但也会返回约46个确实将'node'
作为属性值的节点:
MATCH (m:FooLabel) - [r:CHILD] -> (n:FooLabel) WHERE TRIM( m.node_type ) <> 'node'
这些节点如何匹配谓词?在屏幕截图中,您正在对
m.node\u type
执行字符串比较,但返回n
您的意思是比较
m.node\u type
还是n.node\u type
?在屏幕截图中,您正在对m.node\u type
进行字符串比较,但返回n
你的意思是比较
m.node\u类型
还是n.node\u类型
?在这种情况下m
和n
之间有区别吗?我注意到,当我执行m.node\u type='node'
时,我得到了8000多个结果。是的,区别在于m
是关系传出端的节点(r
),而n
是关系传入端的节点r
。如果要排除具有节点
属性的节点类型
的节点,请更改查询以比较n
和m
上的属性:。。。其中trim(n.node_type)‘node’和trim(m.node_type)‘node’
在这种情况下,m
和n
之间有区别吗?我注意到,当我执行m.node\u type='node'
时,我得到了8000多个结果。是的,区别在于m
是关系传出端的节点(r
),而n
是关系传入端的节点r
。如果要排除具有节点
属性的节点类型
的节点,请更改查询以比较n
和m
上的属性:。。。其中修剪(n.node_类型)‘node’和修剪(m.node_类型)‘node’