Collections Neo4j Cypher使用';和/或';逻辑运算符

Collections Neo4j Cypher使用';和/或';逻辑运算符,collections,neo4j,cypher,extract,logical-operators,Collections,Neo4j,Cypher,Extract,Logical Operators,我有一个集合,我需要从每个节点提取一个名称和id,并将它们一起返回,以避免后期处理。我正在努力: extract(c IN nodes(c)| c.name +\': \'+ c.id) as results 问题是,当遇到没有名称值的节点时,它不会返回任何内容 有没有像“and/or”这样的方法使c.name成为可选的,允许它仍然返回c.id和c.name的NULL 谢谢我本来以为可以使用toString将空字符串转换为空字符串,但这似乎不起作用合并应该会有所帮助,不过: extract(c

我有一个集合,我需要从每个节点提取一个名称和id,并将它们一起返回,以避免后期处理。我正在努力:

extract(c IN nodes(c)| c.name +\': \'+ c.id) as results
问题是,当遇到没有名称值的节点时,它不会返回任何内容

有没有像“and/or”这样的方法使c.name成为可选的,允许它仍然返回c.id和c.name的NULL


谢谢

我本来以为可以使用
toString
将空字符串转换为空字符串,但这似乎不起作用<代码>合并应该会有所帮助,不过:

extract(c IN nodes(c)| coalesce(c.name, '') +\': \'+ c.id) as results

您还可以将它们转换为一个集合:
extract(在节点(c)中的c)|[c.name,c.id])
或map
extract(在节点(c)中的c){name:c.name,id:c.id})
感谢你们两位。这三个都很好。以集合或映射的形式返回时,我将两个值分解成一个数组,每个查询的平均值约为270kb,而as coalesce将两个值合并为字符串,每个查询的平均值为70kb。