如何从用户定义的Neo4j函数返回对象

如何从用户定义的Neo4j函数返回对象,neo4j,user-defined-functions,Neo4j,User Defined Functions,我有这样一个复杂的问题: MATCH path = allShortestPaths( ... ) WITH path, reduce(x={ specificStamp: "", specificCount: 0, ... }, r IN relationships(path) | CASE WHEN ... THEN {

我有这样一个复杂的问题:

MATCH path = allShortestPaths( ... )
WITH path, reduce(x={
            specificStamp: "",
            specificCount: 0,
            ...
        },
        r IN relationships(path) |
            CASE WHEN ...
                THEN {
                    specificStamp: some-expr(x),
                    specificCount: another-expr(x),
                    ...
                }
            ...
            END
        ) AS pobj
ORDER BY pobj.specificStamp, pobj.specificCount
RETURN head(COLLECT(path)) AS path, pobj.specificStamp AS stamp, COUNT(*) AS cnt
ORDER BY length(path), stamp
实际代码中的逻辑更复杂,包括嵌套的
CASE
和许多复杂的表达式,然后是一些重复的表达式

为了简化问题,最好将reduce逻辑放在一个单独的函数中。但是Neo4J用户定义函数只能返回一个值

哪种类型的返回值对应于此密码表达式:
{specificStamp:,specificCount:0}

可能是
对象
?但是根据
对象
表示
任何类型

可能是
地图
?但是哪个地图模板呢<代码>映射
映射
冲突

返回一个
映射
映射

有效类型见此:

返回
Map
Map

查看以下有效类型:

Map
足够好了

不需要在密码查询中进行其他类型转换。 用户函数中的字符串字段为字符串。只要长。

Map
就足够了

不需要在密码查询中进行其他类型转换。
用户函数中的字符串字段为字符串。只要长。

你说的“地图或地图”是什么意思?带三角形括号的标记现在应该清楚了。你说的“地图或地图”是什么意思?带三角形括号的标记现在应该清楚了。