Property values

This section describes how both nodes and relationships can have properties.

Properties are named values where the name is a string. Property values can be either a primitive or an array of one primitive type. For example String, int and int[] values are valid for properties.

NULL is not a valid property value. Setting a property to NULL is equivalent to deleting the property.
Table 1. Property value types
Type Description



8-bit integer


16-bit integer


32-bit integer


64-bit integer


32-bit IEEE 754 floating-point number


64-bit IEEE 754 floating-point number


16-bit unsigned integers representing Unicode characters


sequence of Unicode characters


A 2D or 3D point object in a given coordinate system.


An instant capturing the date, but not the time, nor the timezone.


An instant capturing the time of day, and the timezone offset, but not the date.


An instant capturing the time of day, but not the date, nor the timezone.


An instant capturing the date, the time, and the timezone.


An instant capturing the date and the time, but not the timezone.


A temporal amount. This captures the difference in time between two instants.

For further details on float/double values, see Java Language Specification.

Note that there are two cases where more than one Java type is mapped to a single Cypher type. When this happens, type information is lost. If these objects are returned from procedures, the original types cannot be recreated:

  • A Cypher Duration is created when either a java.time.Duration or a java.time.Period is provided. If a Duration is returned, only the common interface java.time.temporal.TemporalAmount will remain.

  • A Cypher DateTime is created when a java.time.OffsetDateTime is provided. If a DateTime is returned, it will be converted into a java.time.ZonedDateTime.

Strings that contain special characters can have inconsistent or non-deterministic ordering in Neo4j. For details, see Cypher Manual → Sorting of special characters.