如何从用户定义的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
就足够了
不需要在密码查询中进行其他类型转换。
用户函数中的字符串字段为字符串。只要长。你说的“地图或地图”是什么意思?带三角形括号的标记现在应该清楚了。你说的“地图或地图”是什么意思?带三角形括号的标记现在应该清楚了。