如何在Neo4J Cypher中将UNWIND查询转换为FOREACH?

时间:2019-01-22 13:28:52

标签: foreach neo4j cypher

我有以下Neo4J Cypher查询:

UNWIND $mentionsRelations as mention 
MATCH (u:User{name:mention.from}) 
RETURN u.uid;

这些参数是:

{
  "mentionsRelations": [
    {
      "from": "a",
      "to": "b"
    },
    {
      "from": "c",
      "to": "d"
    }
  ]
}

是否可以使用FOREACH查询重写它以获得相同的结果?

我知道它不接受MATCH参数,但是我很好奇是否有解决方法来获得相同的结果?

基本上,我要使用mentionsRelationsFOREACH中进行重申,然后在其发现的数据库中输出所有匹配项。

谢谢!

1 个答案:

答案 0 :(得分:0)

当前不可能,FOREACH仅用于写操作,不能仅用于与节点匹配。

UNWIND是否有某些理由对您不起作用?

您还可以根据列表成员资格进行匹配,这应该类似地起作用,尽管您必须提取出用于属性匹配的值:

WITH [mention in $mentionsRelationships | mention.from] as froms
MATCH (u:User) 
WHERE u.name in froms
RETURN u.uid;