19.10. Node properties
Set property on node
Setting different properties will retain the existing ones for this node. Note that a single value are submitted not as a map but just as a value (which is valid JSON) like in the example below.
Example request
-
PUT
http://localhost:7474/db/data/node/11/properties/foo
-
Accept:
application/json; charset=UTF-8
-
Content-Type:
application/json
"bar"
Example response
-
204:
No Content
Update node properties
This will replace all existing properties on the node with the new set of attributes.
Example request
-
PUT
http://localhost:7474/db/data/node/9/properties
-
Accept:
application/json; charset=UTF-8
-
Content-Type:
application/json
{ "age" : "18" }
Example response
-
204:
No Content
Get properties for node
Example request
-
GET
http://localhost:7474/db/data/node/36/properties
-
Accept:
application/json; charset=UTF-8
Example response
-
200:
OK
-
Content-Type:
application/json; charset=UTF-8
{ "foo" : "bar" }
Property values can not be null
This example shows the response you get when trying to set a property to
null
.
Example request
-
POST
http://localhost:7474/db/data/node
-
Accept:
application/json; charset=UTF-8
-
Content-Type:
application/json
{ "foo" : null }
Example response
-
400:
Bad Request
-
Content-Type:
application/json; charset=UTF-8
{ "message": "Could not set property \"foo\", unsupported type: null", "exception": "PropertyValueException", "fullname": "org.neo4j.server.rest.web.PropertyValueException", "stacktrace": [ "org.neo4j.server.rest.domain.PropertySettingStrategy.setProperty(PropertySettingStrategy.java:141)", "org.neo4j.server.rest.domain.PropertySettingStrategy.setProperties(PropertySettingStrategy.java:88)", "org.neo4j.server.rest.web.DatabaseActions.createNode(DatabaseActions.java:214)", "org.neo4j.server.rest.web.RestfulGraphDatabase.createNode(RestfulGraphDatabase.java:238)", "java.lang.reflect.Method.invoke(Method.java:606)", "org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139)", "org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)", "java.lang.Thread.run(Thread.java:724)" ] }
Property values can not be nested
Nesting properties is not supported. You could for example store the nested JSON as a string instead.
Example request
-
POST
http://localhost:7474/db/data/node/
-
Accept:
application/json; charset=UTF-8
-
Content-Type:
application/json
{ "foo" : { "bar" : "baz" } }
Example response
-
400:
Bad Request
-
Content-Type:
application/json; charset=UTF-8
{ "message": "Could not set property \"foo\", unsupported type: {bar\u003dbaz}", "exception": "PropertyValueException", "fullname": "org.neo4j.server.rest.web.PropertyValueException", "stacktrace": [ "org.neo4j.server.rest.domain.PropertySettingStrategy.setProperty(PropertySettingStrategy.java:141)", "org.neo4j.server.rest.domain.PropertySettingStrategy.setProperties(PropertySettingStrategy.java:88)", "org.neo4j.server.rest.web.DatabaseActions.createNode(DatabaseActions.java:214)", "org.neo4j.server.rest.web.RestfulGraphDatabase.createNode(RestfulGraphDatabase.java:238)", "java.lang.reflect.Method.invoke(Method.java:606)", "org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139)", "org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)", "java.lang.Thread.run(Thread.java:724)" ] }
Delete all properties from node
Example request
-
DELETE
http://localhost:7474/db/data/node/250/properties
-
Accept:
application/json; charset=UTF-8
Example response
-
204:
No Content
Delete a named property from a node
To delete a single property from a node, see the example below.
Example request
-
DELETE
http://localhost:7474/db/data/node/249/properties/name
-
Accept:
application/json; charset=UTF-8
Example response
-
204:
No Content