Additions, deprecations, removals, and compatibility

This chapter lists all the features that have been removed, deprecated, added or extended in the recent versions of APOC.

APOC 2025.06 includes many changes only compatible with Cypher 25, and the last updates to Cypher 5. Any changes to APOC in future releases (APOC 2025.07+) are only compatible with Cypher 25. Procedures and functions removed from Cypher 25 can still be accessed using APOC 2025.06+, either by prepending a query with CYPHER 5 or by having Cypher 5 as the default language for the database. For more information, see:

Version 2025.07

Deprecated in Cypher 25

Feature Details

Function Deprecated

RETURN apoc.agg.graph(path)

This function is deprecated in favor of Cypher’s COLLECT {} expression.

RETURN {
  nodes: COLLECT {
    UNWIND nodes(path) AS n
    RETURN DISTINCT n
  },
  relationships: COLLECT {
    UNWIND relationships(path) AS r
    RETURN DISTINCT r
  }
}

Function Deprecated

RETURN apoc.agg.product(value)

This function is deprecated in favor of Cypher’s reduce() function.

RETURN reduce(x = 1, i IN values | x * i)

Procedure Deprecated

CALL apoc.algo.cover(nodes)

This procedure is deprecated in favor of Cypher’s MATCH and IN. For more information, see the examples in apoc.algo.cover.

UNWIND node AS nodes
MATCH (node)-[rel]->(otherNode)
WHERE otherNode IN nodes
RETURN rel

Procedure Deprecated

RETURN apoc.coll.contains(coll, value)

This function is deprecated in favor of the following Cypher solution:

RETURN value IN coll

Procedure Deprecated

RETURN apoc.coll.containsAll(coll1, coll2)

This function is deprecated in favor of the following Cypher solution:

RETURN all(x IN coll2 WHERE x IN coll1)

Function Deprecated

RETURN apoc.coll.fill(item, count)

This function is deprecated in favor of Cypher’s list comprehension.

RETURN [i IN range(1, count) | item] as output

Function Deprecated

RETURN apoc.coll.max(values)

This function is deprecated in favor of Cypher’s max() function.

UNWIND values AS values
RETURN max(value)

Function Deprecated

RETURN apoc.coll.min(values)

This function is deprecated in favor of Cypher’s min() function.

UNWIND values AS values
RETURN min(value)

Function Deprecated

RETURN apoc.coll.occurrences(coll, item)

Use Cypher’s reduce() function with a CASE expression.

RETURN reduce(count = 0, x IN coll | count + CASE WHEN x = item THEN 1 ELSE 0 END)

Function Deprecated

RETURN apoc.coll.pairs(list)

This function is deprecated in favor of Cypher’s list comprehension.

RETURN [i IN range(0, size(list) - 1) | [list[i], list[i + 1]]] AS value

Function Deprecated

RETURN apoc.coll.pairsMin(list)

This function is deprecated in favor of Cypher’s list comprehension.

RETURN [i IN range(0, size(list) - 2) | [list[i], list[i + 1]]] AS value

Procedure Function Deprecated

CALL apoc.coll.pairWithOffset(coll, offset)
RETURN apoc.coll.pairWithOffset(coll, offset)

This function and procedure are deprecated in favor of the following Cypher solution:

RETURN [i IN range(0, size(list) - 1) | [list[i], list[i + offset]]] AS value

Procedure Function Deprecated

CALL apoc.coll.partition(coll, batchSize)
RETURN apoc.coll.partition(coll, batchSize)

This function and procedure are deprecated in favor of the following Cypher solution:

RETURN [i IN range(0, size(list), offset) | list[i..i + offset]] AS value

Function Deprecated

RETURN apoc.coll.randomItem(coll)

This function is deprecated in favor of Cypher’s rand() function.

RETURN list[toInteger(rand() * size(list))]

Function Deprecated

RETURN apoc.coll.sortNodes(coll, prop)

Use Cypher’s COLLECT {} expression and ORDER BY clause:

RETURN COLLECT {
  MATCH (n)
  RETURN n
  ORDER BY n.prop DESC
}

Function Deprecated

RETURN apoc.coll.stdev(list, isBiasCorrected)

Use Cypher’s stDev() and stDevP() functions.

UNWIND [1,2,3,4,5] AS x
RETURN stDev(x), stDevP(x)

Function Deprecated

RETURN apoc.coll.sum(coll)

This function is deprecated in favor of Cypher’s reduce() function.

RETURN reduce(sum = 0.0, x IN coll | sum + x)

Function Deprecated

RETURN apoc.coll.sumLongs(coll)

This function is deprecated in favor of Cypher’s reduce() function.

RETURN reduce(sum = 0.0, x IN coll | sum + x)

Function Deprecated

RETURN apoc.coll.unionAll(list1, list2)

apoc.coll.unionAll() is functionally equivalent to Cypher’s list concatenation.

RETURN list1 + list2

Function Deprecated

RETURN apoc.coll.zip(list1, list2)

This function is deprecated in favor of Cypher’s UNWIND and range() function. See the Cypher Manual → UNWIND and Cypher Manual → range() for more information.

RETURN COLLECT {
    UNWIND range(0, size(list1)-1) AS i
    RETURN [list1[i], list2[i]]
} AS result

Procedure Deprecated

CALL apoc.coll.zipToRows(list1, list2)

This procedure is deprecated in favor of Cypher’s UNWIND and range() function. See the Cypher Manual → UNWIND and Cypher Manual → range() for more information.

UNWIND range(0, size(list1) - 1) AS i
RETURN [list1[i], list2[i]]

Function Deprecated

RETURN apoc.convert.toList(value)

This function is deprecated in favor of Cypher’s list functions. To convert a PATH value into a list, see the below example using Cypher’s reduce() function.

MATCH path = ()-[:ACTED_IN]->()
WITH nodes(path) AS nodes, relationships(path) AS rels
RETURN reduce(acc=[nodes[0]], i IN range(0,size(rels)-1) | acc + rels[i] + nodes[i+1])[0] AS output

Procedure Deprecated

CALL apoc.create.addLabels(nodes, labels)

This procedure is deprecated in favor of Cypher’s dynamic labels using SET. For more information, see the Cypher Manual → Dynamically setting a label

SET n:$(labels)

Procedure Deprecated

CALL apoc.create.node(labels, $props)

This procedure is deprecated in favor of Cypher’s dynamic labels. See the Cypher Manual → CREATE nodes and relationships using dynamic node labels and relationship types for more information.

CREATE (n:$(labels) $props)

Procedure Deprecated

CALL apoc.create.nodes(labels, $props)

This procedure is deprecated in favor of Cypher’s dynamic labels. See the Cypher Manual → CREATE nodes and relationships using dynamic node labels and relationship types for more information.

UNWIND $props AS propertyMap
CREATE (node:$($labels))
SET n = propertyMap

Procedure Deprecated

CALL apoc.create.relationship(from, relType, props, to)

This procedure is deprecated in favor of Cypher’s dynamic types. See the Cypher Manual → CREATE nodes and relationships using dynamic node labels and relationship types for more information.

CREATE (from)-[n:$(relType)]->(to)
SET n = props

Procedure Deprecated

CALL apoc.create.removeLabels(nodes, labels)

This procedure is deprecated in favor of Cypher’s dynamic labels. See the Cypher Manual → Dynamically remove a node label for more information.

REMOVE node:$(nodes)

Procedure Deprecated

CALL apoc.create.removeProperties(nodes, keys)

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically removing a property for more information.

REMOVE node[key]

Procedure Deprecated

CALL apoc.create.removeRelProperties(rels, keys)

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically removing a property for more information.

REMOVE rel[key]

Procedure Deprecated

CALL apoc.create.setLabels(nodes, labels)

This procedure is deprecated in favor of Cypher’s dynamic labels. See the Cypher Manual → Dynamically setting a label for more information.

REMOVE node:$(labels(node))
SET node:$(labels)

Procedure Deprecated

CALL apoc.create.setProperties(nodes, keys, values)

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically setting or updating a property for more information.

SET node[key] = value

Procedure Deprecated

CALL apoc.create.setProperty(nodes, key, value)

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically setting or updating a property for more information.

SET node[key] = value

Procedure Deprecated

CALL apoc.create.setRelProperties(rels, keys, values)

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically setting or updating a property for more information.

SET rel[key] = value

Procedure Deprecated

CALL apoc.create.setRelProperty(rels, key, value)

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically setting or updating a property for more information.

SET rel[key] = value

Function Deprecated

RETURN apoc.date.currentTimestamp()

This function is deprecated in favor of Cypher’s Temporal functions - instant types.

RETURN datetime.realtime().epochMillis

Function Deprecated

RETURN apoc.date.field(time, unit, timezone)

This function is deprecated in favor of Cypher’s instance.field component access. For example to access the year of a DATETIME value:

RETURN datetime().year

Function Deprecated

RETURN apoc.date.fromISO8601(time)

Cypher’s datetime() function already accepts STRING values formatted to the ISO8601 standard.

RETURN datetime('2020-11-04T12:21:33.000Z').epochMillis

Function Deprecated

RETURN apoc.date.toISO8601(time, unit)

Cypher’s toString() function automatically converts temporal values into STRING values formatted to the ISO8601 standard.

RETURN toString(datetime())

Function Deprecated

RETURN apoc.meta.cypher.isType(value, type)

This function is deprecated in favor of Cypher’s type predicate expressions.

RETURN value IS :: <TYPE>

Function Deprecated

RETURN apoc.meta.cypher.type(value)

This function is deprecated in favor of Cypher’s value type function.

RETURN valueType(value)

Function Deprecated

RETURN apoc.node.degree(node, relTypes )
RETURN apoc.node.degree.in(node, relTypes )
RETURN apoc.node.degree.out(node, relTypes )

Cypher will perform a degree lookup on simple patterns when using the COUNT {} expression:

RETURN COUNT { (p)--() }
RETURN COUNT { (p)<--() }
RETURN COUNT { (p)-->() }

Function Deprecated

RETURN apoc.node.relationship.exists(node, relTypes )

Use Cypher’s EXISTS {} expression:

RETURN EXISTS { (p)--() }

Procedure Deprecated

CALL apoc.nodes.delete(nodes, batchSize)

This procedure is deprecated in favor of Cypher’s CALL {…​} IN TRANSACTIONS. For more information, see the Cypher Manual → CALL subqueries in transactions.

CALL (n) {
    DETACH DELETE n
} IN TRANSACTIONS OF 100 ROWS

Function Deprecated

RETURN apoc.refactor.categorize(sourceKey, type, outgoing, label, targetKey, copiedKeys, batchSize)

See apoc.refactor.categorize for more information. An example of how to refactor is shown below:

MATCH (n) WHERE n.genre IS NOT NULL
CALL (n) {
  MERGE (g:Genre {name: n.genre})
  CREATE (n)-[:GENRE]->(:g)
  REMOVE n.genre
} IN TRANSACTIONS OF 100 ROWS

Procedure Deprecated

CALL apoc.refactor.rename.label(oldLabel, newLabel, nodes )

This procedure is deprecated in favor of Cypher’s dynamic labels. See the Cypher Manual → Dynamically setting a label and Cypher Manual → Dynamically removing a label for more information.

REMOVE node:$(oldLabel)
SET node:$(newLabel)

Procedure Deprecated

CALL apoc.refactor.rename.nodeProperty(oldName, newName, nodes, config)

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically set or update a property and Cypher Manual → Dynamically removing a property for more information.

SET node[newKey] = node[oldKey]
REMOVE node[oldKey]

Procedure Deprecated

CALL apoc.refactor.rename.type(oldType, newType, rels, config)

This procedure is deprecated in favor of Cypher’s dynamic types and DELETE clause. See the Cypher Manual → CREATE using dynamic node labels and relationship types and Cypher Manual → Delete relationships only for more information.

CREATE (from)-[:$(newType)]->(to)
SET newRel = properties(oldRel)
DELETE oldRel

Procedure Deprecated

CALL apoc.refactor.rename.typeProperty(oldName, newName, rels, config )

This procedure is deprecated in favor of Cypher’s dynamic properties. See the Cypher Manual → Dynamically set or update a property and Cypher Manual → Dynamically removing a property for more information.

SET rel[newKey] = rel[oldKey]
REMOVE rel[oldKey]

Procedure Deprecated

CALL apoc.refactor.setType(rel, newType)

This procedure is deprecated in favor of Cypher’s dynamic types and DELETE clause. See the Cypher Manual → CREATE using dynamic node labels and relationship types and Cypher Manual → Delete relationships only for more information.

CREATE (from)-[newRel:$(newType)]->(to)
SET newRel = properties(oldRel)
DELETE oldRel

Procedure Deprecated

apoc.case(conditionals [, elseQuery, params ])
apoc.do.case(conditionals [, elseQuery, params ])
apoc.do.when(condition, ifQuery, elseQuery [, params ])
apoc.when(condition, ifQuery [, elseQuery, params ])

Replaced by Cypher’s conditional queries:

WHEN predicate THEN [{]
  <conditionalQuery>
  [}]
[WHEN ...]*
[ELSE [{]
  <conditionalQuery>
[}]]

Version 2025.06

Removed in Cypher 25

Feature Details

Procedure Removed

apoc.export.arrow.all(file [, config ])
apoc.export.arrow.graph(file, graph [, config ])
apoc.export.arrow.query(file, query [, config ])
apoc.export.arrow.stream.all([ config ])
apoc.export.arrow.stream.graph(graph [, config ])
apoc.export.arrow.stream.query(query [, config ])
apoc.load.arrow(file [, config ])
apoc.load.arrow.stream(source [, config ])
apoc.load.jsonParams(urlOrKeyOrBinary, headers, payload [, path, config ])
apoc.log.stream(path [, config ])

These procedures have been migrated to the APOC Extended library. This means they are no longer officially supported by Neo4j.

Procedure Removed

apoc.trigger.add(name, statement, selector [, config ])
apoc.trigger.remove(name)
apoc.trigger.removeAll()
apoc.trigger.pause(name)
apoc.trigger.resume(name)

These procedures have been removed in favor of the new apoc.trigger procedures.

Procedure Removed

apoc.warmup.run([ loadProperties, loadDynamicProperties, loadIndexes ])

This procedure has been removed because it duplicates the functionality of the page cache warm-up, which is part of the DBMS. Additionally, the API of this procedure is specific to the Record storage engine, which is no longer the default storage engine for Neo4j.

Procedure Removed

apoc.convert.toTree(paths [, lowerCaseRels, config ])

This procedure has been replaced by apoc.paths.toJsonTree.

Function Removed

apoc.create.uuid()
apoc.create.uuids(count)

These functions have been replaced by Cypher’s randomUUID() function.

Function Removed

apoc.map.setEntry

This function has been replaced by apoc.map.setKey.

Function Removed

apoc.text.regreplace

This function has been replaced by apoc.text.replace.

Function Removed

apoc.text.levenshteinDistance

This function has been replaced by apoc.text.distance.

Deprecated in Cypher 25

Feature Details

Function Deprecated

RETURN apoc.math.coth(x)

Replaced by Cypher’s coth() function:

RETURN coth()

Function Deprecated

RETURN apoc.math.cosh(x)

Replaced by Cypher’s cosh() function:

RETURN cosh()

Function Deprecated

RETURN apoc.math.sinh(x)

Replaced by Cypher’s sinh() function:

RETURN sinh()

Function Deprecated

RETURN apoc.math.tanh(x)

Replaced by Cypher’s tanh() function:

RETURN tanh()

Updated in Cypher 5 and 25

Feature Details

Procedure Updated

apoc.export.json.all()
apoc.export.json.data()
apoc.export.json.graph()
apoc.export.json.query()

The apoc.export.json.* procedures have a new config argument writeRelationshipProperties. For more information, see apoc.export.json.all → Configuration parameters.

Version 2025.01

Updated procedures and functions

Feature Details

Procedure Updated

apoc.cypher.runTimeboxed(statement, params, timeout, config)

apoc.cypher.runTimeboxed has a new config argument. For more information, see apoc.cypher.runTimeboxed → Configuration parameters.

Procedure Updated

apoc.refactor.from(rel, endNode, config),
apoc.refactor.invert(rel, config),
apoc.refactor.to(rel, endNode, config)

apoc.refactor.from, apoc.refactor.invert, and apoc.refactor.to have a new config argument, that allows for setting whether they should fail or not in case of errors.

Procedure Updated

apoc.create.virtual.fromNode(node, propertyNames, config)

apoc.create.virtual.fromNode has a new config argument. For more information, see apoc.create.virtual.fromNode → Wrapping Nodes.

Version 5.26

Deprecated procedures and functions

Feature Details

Procedure Deprecated

apoc.export.arrow.all(file [, config ])
apoc.export.arrow.graph(file, graph [, config ])
apoc.export.arrow.query(file, query [, config ])
apoc.export.arrow.stream.all([ config ])
apoc.export.arrow.stream.graph(graph [, config ])
apoc.export.arrow.stream.query(query [, config ])
apoc.load.arrow(file [, config ])
apoc.load.arrow.stream(source [, config ])
apoc.load.jsonParams(urlOrKeyOrBinary, headers, payload [, path, config ])
apoc.log.stream(path [, config ])

All of these procedures will be migrated to the APOC Extended library in an upcoming major version.

Function Deprecated

apoc.map.setEntry

This function is a duplicate of apoc.map.setKey and will be removed in an upcoming major version.

Function Deprecated

apoc.text.regreplace

This function is a duplicate of apoc.text.replace and will be removed in an upcoming major version.

Function Deprecated

apoc.text.levenshteinDistance

This function is a duplicate of apoc.text.distance and will be removed in an upcoming major version.

Updated procedures and functions

Feature Details

Function Updated

apoc.coll.collections([null], null)

apoc.coll.contains now uses Cypher’s value matcher. This means that it will always return false when matching on a null value. To check whether a collection contains a null value, it is recommended to use Cypher’s any() function.

Version 5.24

New procedures and functions

Feature Details

Function New

RETURN apoc.text.regexGroupsByName(text, regex)

Returns all groups with their group name matching the regular expression in the given text.

Version 5.20

Deprecated procedures and functions

Feature Details

Procedure Deprecated

CALL apoc.convert.toTree(paths LIST<PATH>, lowerCaseRels BOOLEAN, config MAP<STRING, ANY>)

Use the following instead:

CALL apoc.paths.toJsonTree(paths LIST<PATH>, lowerCaseRels BOOLEAN, config MAP<STRING, ANY>)

New procedures and functions

Feature Details

Procedure New

CALL apoc.paths.toJsonTree(paths LIST<PATH>, lowerCaseRels BOOLEAN, config MAP<STRING, ANY>)

Fixes several issues with the deprecated apoc.convert.toTree.

Version 5.4

Deprecated procedures and functions

Feature Details

Procedure Deprecated

CALL apoc.trigger.add(name STRING, statement STRING, selector MAP<STRING, ANY>, config MAP<STRING, ANY>)

Use the following instead:

CALL apoc.trigger.install(databaseName STRING, name STRING, statement STRING, selector MAP<STRING, ANY>, config MAP<STRING, ANY>)

Procedure Deprecated

CALL apoc.trigger.remove(name STRING)

Use the following instead:

CALL apoc.trigger.drop(databaseName STRING, name STRING)

Procedure Deprecated

CALL apoc.trigger.removeAll()

Use the following instead:

CALL apoc.trigger.dropAll(databaseName STRING)

Procedure Deprecated

CALL apoc.trigger.pause(name STRING)

Use the following instead:

CALL apoc.trigger.stop(databaseName STRING, name STRING)

Procedure Deprecated

CALL apoc.trigger.resume(name STRING)

Use the following instead:

CALL apoc.trigger.start(databaseName STRING, name STRING)

Updated procedures and functions

Feature Details

Procedure Updated

apoc.path.expandConfig(startNode ANY, config MAP<STRING, ANY>)
apoc.path.spanningTree(startNode ANY, config MAP<STRING, ANY>)
apoc.path.subgraphAll(startNode ANY, config MAP<STRING, ANY>)
apoc.path.subgraphNodes(startNode ANY, config MAP<STRING, ANY>)

Deprecated config fields:

Config {
  whitelistNodes: LIST<NODE>,
  blacklistNodes: LIST<NODE>
}

Use the following instead:

Config {
  allowlistNodes: LIST<NODE>,
  denylistNodes: LIST<NODE>
}

New procedures and functions

Feature Details

Procedure New

CALL apoc.trigger.drop(databaseName STRING, name STRING)

Eventually removes the given trigger.

Procedure New

CALL apoc.trigger.dropAll(databaseName STRING)

Eventually all triggers from the given database.

Procedure New

CALL apoc.trigger.install(databaseName STRING, name STRING, statement STRING, selector MAP<STRING, ANY>, config MAP<STRING, ANY>)

Eventually a trigger for a given database which is invoked when a successful transaction occurs.

Procedure New

CALL apoc.trigger.show(databaseName STRING)

Lists all eventually installed triggers for a database.

Procedure New

CALL apoc.trigger.stop(databaseName STRING, name STRING)

Eventually stops the given trigger.

Procedure New

CALL apoc.trigger.start(databaseName STRING, name STRING)

Eventually restarts the given paused trigger.

Version 5.1

Removed procedures and functions

Feature Details

Function Removed

apoc.convert.toBoolean(value)

Use the following instead:

toBoolean(value)

or

toBooleanOrNull(value)

Function Removed

apoc.convert.toBooleanList(value)

Use the following instead:

toBooleanList(value)

Function Removed

apoc.convert.toFloat(value)

Use the following instead:

toFloat(value)

or

toFloatOrNull(value)

Function Removed

apoc.convert.toIntList(value)

Use the following instead:

toIntegerList(value)

Function Removed

apoc.convert.toInteger(value)

Use the following instead:

toInteger(value)

or

toIntegerOrNull(value)

Function Removed

apoc.convert.toString(value)

Use the following instead:

toString(value)

or

toStringOrNull(value)

Function Removed

apoc.convert.toStringList(value)

Use the following instead:

toStringList(value)

Version 5.0

Config updates

Feature Details

Config Updated

APOC config settings are no longer supported in neo4j.conf.

All apoc.* settings should now be set via an environment variable or added to apoc.conf.

See here for more information.

Deprecated procedures and functions

Feature Details

Function Deprecated

RETURN apoc.create.uuid()

Replaced by Neo4j Function randomUUID():

RETURN randomUUID()

Procedure Deprecated

CALL apoc.create.uuids($count)

Replaced by Neo4j Function randomUUID():

UNWIND range(0,$count) AS row RETURN row, randomUUID() AS uuid

Procedure Deprecated

apoc.warmup.run(loadProperties=false,loadDynamicProperties=false,loadIndexes=false)

This procedure duplicated functionality of page cache warm up which is a part of the DBMS.

Removed procedures and functions

Feature Details

Procedure Removed

apoc.algo.dijkstraWithDefaultWeight(startNode, endNode, 'KNOWS', 'distance', 10) YIELD path, weight

Use the following instead:

apoc.algo.dijkstra(startNode, endNode, 'KNOWS', 'distance', defaultValue, numberOfWantedResults) YIELD path, weight

Function Removed

apoc.date.parseAsZonedDateTime('2012-12-23 23:59:59','yyyy-MM-dd HH:mm:ss', 'UTC-hour-offset')

Replaced by:

apoc.temporal.toZonedTemporal('2012-12-23 23:59:59','yyyy-MM-dd HH:mm:ss', 'UTC-hour-offset')

Function Removed

apoc.coll.reverse(coll)

Replaced in Cypher with:

WITH [4923,'abc',521, null, 487] AS ids
RETURN reverse(ids)

Procedure Removed

apoc.export.cypherAll(file,config)

Replaced by:

apoc.export.cypher.all(file,config)

Procedure Removed

apoc.export.cypherData(nodes,rels,file,config)

Replaced by:

apoc.export.cypher.data(nodes,rels,file,config)

Procedure Removed

apoc.export.cypherGraph(graph,file,config)

Replaced by:

apoc.export.cypher.graph(graph,file,config)

Procedure Removed

apoc.export.cypherQuery(query,file,config)

Replaced by:

apoc.export.cypher.query(query,file,config)

Function Removed

apoc.meta.type(value)

Replaced by:

apoc.meta.cypher.type(value)

Function Removed

apoc.meta.types(node-relationship-map)

Replaced by:

apoc.meta.cypher.types(node-relationship-map)

Function Removed

apoc.meta.isType(value,type)

Replaced by:

apoc.meta.cypher.isType(value,type)

Function Removed

apoc.meta.typeName(value)

Replaced by:

apoc.meta.cypher.type(value)

Procedure Removed

apoc.periodic.rock_n_roll_while('some cypher for knowing when to stop', 'some cypher for iteration', 'some cypher as action on each iteration', 10000) YIELD batches, total

Partially replaced in Cypher with:

CALL {} IN TRANSACTIONS OF n ROWS

Procedure Removed

apoc.periodic.rock_n_roll('some cypher for iteration', 'some cypher as action on each iteration', 10000) YIELD batches, total

Replaced in Cypher with:

CALL {} IN TRANSACTIONS OF n ROWS

Procedure Removed

apoc.create.vPattern({_labels:['LabelA'],key:value},'KNOWS',{key:value,...}, {_labels:['LabelB'],key:value}) returns a virtual pattern

Replaced by:

apoc.create.virtualPath(['LabelA'],{key:value},'KNOWS',{key:value,...},['LabelB'],{key:value})

Procedure Removed

apoc.create.vPatternFull(['LabelA'],{key:value},'KNOWS',{key:value,...},['LabelB'],{key:value}) returns a virtual pattern

Replaced by:

apoc.create.virtualPath(['LabelA'],{key:value},'KNOWS',{key:value,...},['LabelB'],{key:value})

Procedure Removed

apoc.xml.import(url, config)

Replaced by:

apoc.import.xml(file,config)

Procedure Removed

apoc.refactor.cloneNodesWithRelationships([node1,node2,...])

Use the following instead, and set withRelationships = true:

apoc.refactor.cloneNodes(nodes, withRelationships, skipProperties)

Procedure Removed

CALL apoc.text.phonetic(value) yield value

Replaced by the function:

RETURN apoc.text.phonetic(text) yield value

Procedure Removed

CALL apoc.text.doubleMetaphone(value) yield value

Replaced by the function:

RETURN apoc.text.doubleMetaphone(text) yield value

Function Removed

apoc.math.round(value,[prec],mode=[CEILING,FLOOR,UP,DOWN,HALF_EVEN,HALF_DOWN,HALF_UP,DOWN,UNNECESSARY])

Replaced by the Neo4j round() function:

RETURN round(3.141592, 3)

Function Removed

apoc.cypher.runFirstColumn(statement, params, expectMultipleValues)

Replaced by:

apoc.cypher.runFirstColumnMany(statement, params)
apoc.cypher.runFirstColumnSingle(statement, params)

Removed Config Settings

Setting Details

Setting Removed apoc.initializer.cypher - a cypher statement to be executed once the database is started

This has been replaced by database-specific initializers. Use apoc.initializer.<database name> instead.