首页 > 解决方案 > 从两个列表创建地图

问题描述

我在 Neo4J 中有一个列表,比如说['a', 'b', 'c']。我想制作一个地图M,它会给我每个条目的索引,例如这样M['b']=1.

我想将列表作为变量来执行此操作,以避免显式写出地图。

这应该像在查询中一样工作:

WITH {a:0, b:1, c:2} AS M
return M["a"]

我试过这样的事情:

WITH ['a', 'b', 'c'] AS ps
UNWIND ps as X
RETURN {X:range(0,size(ps)-1)}

但得到错误。

标签: neo4jcypher

解决方案


apoc.map.fromLists函数应该很有用

WITH ['a', 'b', 'c'] AS ps
RETURN apoc.map.fromLists(ps, RANGE(0, SIZE(ps)-1)) AS m

结果是:

╒═══════════════════╕
│"m"                │
╞═══════════════════╡
│{"a":0,"b":1,"c":2}│
└───────────────────┘

推荐阅读