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.

Figure 19.36. Final Graph

Example request

  • PUT http://localhost:7474/db/data/node/334/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.

Figure 19.37. Final Graph

Example request

  • PUT http://localhost:7474/db/data/node/332/properties
  • Accept: application/json; charset=UTF-8
  • Content-Type: application/json
{
  "age" : "18"
}

Example response

  • 204: No Content

Get properties for node

Figure 19.38. Final Graph

Example request

  • GET http://localhost:7474/db/data/node/1/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:241)",
    "java.lang.reflect.Method.invoke(Method.java:606)",
    "org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139)",
    "java.lang.Thread.run(Thread.java:744)"
  ]
}

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:241)",
    "java.lang.reflect.Method.invoke(Method.java:606)",
    "org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139)",
    "java.lang.Thread.run(Thread.java:744)"
  ]
}

Delete all properties from node

Figure 19.39. Final Graph

Example request

  • DELETE http://localhost:7474/db/data/node/34/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.

Figure 19.40. Starting Graph

Figure 19.41. Final Graph

Example request

  • DELETE http://localhost:7474/db/data/node/33/properties/name
  • Accept: application/json; charset=UTF-8

Example response

  • 204: No Content