如何在每个节点中循环遍历列表属性,并查看它是否出现在其他节点属性中?

How to loop throught a list property in each node and see if it appears in other node property?

我在 Neo4j 中的数据如下所示:(ARTICLE) 和 (TOPIC) 节点。

在每个 ARTICLE 节点中,我都有一个 属性,其中包含这样的字符串列表,属性 是主题:

“主题”:[“太阳”、“天空”]

我有很多主题节点,我想在每次与 TOPIC 节点名称对应的字符串时创建 ARTICLE 节点和 TOPICS 节点之间的关系。

例如,如果我有一个包含 属性 主题和值 sun 的 TOPIC 节点,我想在包含字符串 sun 的文章(在主题列表 属性 的ARTICLE 节点)和 TOPIC 节点。

我该怎么做?我想过在每个节点列表中循环,看看它是否在主题节点中。

您可以获取所有文章主题,然后针对每个主题,找到对应的主题节点。创建关系 CONNECTED_TO(或创建您自己的名称)。

MATCH (a:ARTICLE)
UNWIND a.topics as articleTopic
MATCH (t:TOPICS {topic: articleTopic})
MERGE p=(a)-[:CONNECTED_TO]->(t)
RETURN p

示例结果: