我的查询的目的是标记相似的单词。
CREATE CONSTRAINT ON (n:Word) ASSERT n.title IS UNIQUE
MATCH (n) WHERE ID(n)={id}
MERGE (o:Word{title:{title}})
WITH n,o MERGE n-[r:SIMILAR{location:'{location}'}]->o
RETURN ID(o)
n
是现有的Word。我想创建关系和关系另一个Word(o
)如果它们还不存在。
此查询的问题是,它适用于一个标题,但如果我使用带标题的数组,那么Word o
的标题就是整个数组。
你能否建议我使用另一个查询来执行相同的操作和/或将多个值传递给title的方法。
我在Rails上使用Neography Gem,例如REST API
答案 0 :(得分:1)
要在参数数组中使用单个值,您可以使用FOREACH
,例如
MATCH (n)
WHERE ID (n) = {id}
FOREACH (t IN {title} |
MERGE (o:Word {title:t})
MERGE n-[:SIMILAR]->o
)
如果您还希望将location
作为参数传递(它实际上是当前查询中的字符串文字),那么n
的合并操作应该针对每个title, location
对进行在参数数组中,您可以尝试
FOREACH (map IN {maps} |
MERGE (o:Word {title:map.title})
MERGE n-[:SIMILAR {location:map.location}]->o
)
带有类似
的参数{
"maps": [
{
"title":"neography",
"location":"1.."
},{
"title":"coreography",
"location":"3.."
}
]
}
其他建议:
MATCH (n:Word {title:"geography"})