Neo4j 理解apoc.refactor.mergeNodes

Neo4j 理解apoc.refactor.mergeNodes,neo4j,Neo4j,我正在使用apoc.refactor.mergeNodes合并节点。 我有886个节点,其属性为患者id和服务日期。所有服务日期均为同年12月。 我有以下代码: CALL apoc.refactor.mergeNodes(nodes, {properties: { pat_id:'combine', date:'combine'}, mergeRels:true}) 合并节点有886个患者id的列表,但它只有31个日期。似乎删除了日期的任何重复值。此函数的文档说明“combine”将创建一个数

我正在使用apoc.refactor.mergeNodes合并节点。 我有886个节点,其属性为患者id和服务日期。所有服务日期均为同年12月。 我有以下代码:

CALL apoc.refactor.mergeNodes(nodes, {properties: {
pat_id:'combine',
date:'combine'}, mergeRels:true})
合并节点有886个患者id的列表,但它只有31个日期。似乎删除了日期的任何重复值。此函数的文档说明“combine”将创建一个数组,但它似乎只是通过保持唯一值来作为一个集合运行。 我已经搜索了各种apoc函数,但找不到一种方法来实现这一点。我还尝试为所有作为映射的886个节点创建一个属性(例如,date_map:{pat_id:date}),但似乎不能将映射作为属性值


有没有办法在组合节点中保留重复的值?

您能否提供数据库结构的示例,并更好地解释您的最终目标?您实际上是在尝试从多个节点创建一个节点,还是只是在尝试从886个节点收集信息(如下所示:)

最好将患者节点和日期节点分开,这样就很容易获得每个患者的所有日期节点的列表(包括重复的)

MATCH (node)
RETURN DISTINCT node.pat_id as ids, collect(node.date) as dates