Neo4j 给出属性列表,找出节点属性中提到的属性
如果我有一个字符串列表。例如,Neo4j 给出属性列表,找出节点属性中提到的属性,neo4j,cypher,Neo4j,Cypher,如果我有一个字符串列表。例如,[“test1”、“test2”、“test3”、“test4”],并且有一个包含两个节点的Neo4j数据库,其属性myProperty分别设置为“test1”和“test3” 我想创建一个使用列表并标识列表中哪些元素不在node.myProperty上的密码表达式,以便在上面的示例中返回[“test2”,“test4”]。这有可能吗?如果有,cypher表达式会是什么样子 作为替代方案,可以返回实际存在的属性列表-[“test1”、“test3”] 我可以为每个列
[“test1”、“test2”、“test3”、“test4”]
,并且有一个包含两个节点的Neo4j数据库,其属性myProperty分别设置为“test1”
和“test3”
我想创建一个使用列表并标识列表中哪些元素不在node.myProperty上的密码表达式,以便在上面的示例中返回[“test2”,“test4”]
。这有可能吗?如果有,cypher表达式会是什么样子
作为替代方案,可以返回实际存在的属性列表-[“test1”、“test3”]
我可以为每个列表元素做一个语句,但是由于列表可能会变得很长,我希望在一个语句中实现它
MATCH (n) where has(n.myProperty)
WITH collect(n.myProperty) as set1
return FILTER(t in set1 WHERE NOT t in ["test1","test2","test3","test4"]) as set2
返回的set2将是所有在图中不作为myProperty存在的集合
返回的set2将是所有在图中不作为myProperty存在的集合Sumeet将我设置为正确的方向(+1)。但是,它返回数据库中不在集合中的所有n.myProperty。我想返回我收藏中的所有单词,而不是任何n.myProperty中的单词。这是这样做的:
MATCH (n:Node) where has(n.myProperty)
WITH collect(n.myProperty) as set1
return FILTER(t in ["test1","test2","test3","test4"] WHERE NOT t in set1 ) as set2
Sumeet为我指明了正确的方向(+1)。但是,它返回数据库中不在集合中的所有n.myProperty。我想返回我收藏中的所有单词,而不是任何n.myProperty中的单词。这是这样做的:
MATCH (n:Node) where has(n.myProperty)
WITH collect(n.myProperty) as set1
return FILTER(t in ["test1","test2","test3","test4"] WHERE NOT t in set1 ) as set2
显然,这将返回集合中不存在的所有node.myPropery。不仅是我无意中传递的属性,它还返回集合中不存在的所有node.myproperty。不仅仅是我传入的属性