我有一种情况,我试图过滤掉与具有特定属性的节点无关的节点。例如,假设我有一个查询可以让我找到所有的人,但我想过滤到只有那些有棕色皮毛的狗的人。我想做的是这样的:
//For simplicity's sake, assume nodes 1,2,3 are the potentials I care about
START person=node(1,2,3)
WHERE person-[:has]->(dog{furColor:"Brown"}) // <-- would be nice to use
RETURN person
但是,这不起作用。解析器明确告诉我:
MATCH 中不允许使用模式元素的属性。
(有趣的是,当我使用“WHERE”时,它引用了“MATCH”,但无论如何)。所以你不能以这种方式引用节点的属性。我还有什么其他选择?我能够通过添加 MATCH 子句来模拟我想要的东西......
START person=node(1,2,3)
MATCH person-[:has]->dog
WHERE dog.furColor! = "Brown"
RETURN person
...但是对我来说,我必须匹配其他路径然后再次将它们过滤掉,这似乎很奇怪且效率低下。还有其他方法吗?