apoc.map.setLists

Details

Syntax

apoc.map.setLists(map, keys, values)

Description

Adds or updates the given keys/value pairs provided in LIST<ANY> format (e.g. [key1, key2],[value1, value2]) in a MAP.

Arguments

Name

Type

Description

map

MAP

The map to be updated.

keys

LIST<STRING>

A list of keys to add or update the map with.

values

LIST<ANY>

A list of values associated to the keys to add or update the map with.

Returns

MAP

Usage examples

The following updates a key in a map:

apoc.map.setLists
WITH {name:"Cristiano Ronaldo", country:"Portugal", dob:date("1985-02-05")} AS map,
     ["dob", "country"] AS keys,
     [date("1986-02-06"), "Spain"] AS values
RETURN apoc.map.setLists(map, keys, values) AS output
Cypher’s Map Comprehension
WITH {name:"Cristiano Ronaldo", country:"Portugal", dob:date("1985-02-05")} AS map,
     ["dob", "country"] AS keys,
     [date("1986-02-06"), "Spain"] AS values
RETURN
  {
    k: v IN map
    | k: CASE
      WHEN k IN keys THEN values[coll.indexOf(keys, k)]
      ELSE v
    END
  } AS output
Results
output
{
  "name": "Cristiano Ronaldo",
  "country": "Spain",
  "dob": "1986-02-06"
}