src/node.coffee
utils = require './utils' module.exports =

Create node

Without properties Details

neo
.createNode()

With properties Details

neo
.createNode({
  name: 'Kieve'
})
createNode: createNode = (params) -> utils.post( "#{@url}/db/data/node", params, (node) -> id = node.body.self.split('/') id = id[id.length - 1] node.body.data._id = id return node.body.data ) cNode: createNode

Considering dropping this in favour of Constraint

read or create unique node (create)

neo.createUniqueNode('people', 'name', 'Kieve', { age: 18 }, 'create_or_fail')

createUniqueNode: createUniqueNode = (label, key, value, params, mode = "getorcreate") -> utils.post( "#{@url}/db/data/index/node/#{label}?uniqueness=#{mode}", { key: key value: value properties: params }, (node) -> id = node.body.self.split('/') id = id[id.length - 1] node.body.data._id = id

        return node.body.data
)

cUniqueNode: createUniqueNode

read node

Note that the response contains URI/templates for the available operations for readting properties and relationships. Details

neo.readNode(1)
readNode: readNode = (nodeId) -> utils.get( "#{@url}/db/data/node/#{nodeId}", (node) -> id = node.body.self.split('/') id = id[id.length - 1] node.body.data._id = id return node.body.data ) rNode: readNode

Delete node

Details

neo.deleteNode(1)
deleteNode: deleteNode = (nodeId) -> utils.del("#{@url}/db/data/node/#{nodeId}", (node) -> node.ok) dNode: deleteNode

read properties for node

Details

neo.readNodeProperty(1)
readNodeProperty: readNodeProperty = (nodeId) -> utils.get( "#{@url}/db/data/node/#{nodeId}/properties", (node) -> node.body._id = nodeId return node.body ) rNodeProperty: readNodeProperty

Set property on node

Details

neo
.updateNodeProperty(1, 'name', 'kieve')

Update node properties

Details

neo
.updateNodeProperty(1, { 'name': 'kieve' })
updateNodeProperty: updateNodeProperty = (nodeId, property, value) -> if value value = JSON.stringify(value) url = "#{@url}/db/data/node/#{nodeId}/properties/#{property}" else value = property url = "#{@url}/db/data/node/#{nodeId}/properties" utils.put( url, value, (node) -> node.ok ) uNodeProperty: updateNodeProperty

Delete all properties from node

Details

neo
.deleteNodeProperty(1)

Delete a named property from a node

Details

neo
.deleteNodeProperty(1, 'name')
deleteNodeProperty: deleteNodeProperty = (nodeId, property) -> if property url = "#{@url}/db/data/node/#{nodeId}/properties/#{property}" else url = "#{@url}/db/data/node/#{nodeId}/properties" utils.del(url, (node) -> node.ok) dNodeProperty: deleteNodeProperty

###read all nodes with a label

#

It crash the database, need further investigation Details

neo
.readNodeByLabel('person')

#

###read nodes by label and property

#

Details

neo
.readNodeByLabel('person', { name: 'kieve chua' })

#

readNodeByLabel: readNodeByLabel = (label, property) -> if property utils.get("#{@url}/db/data/label/#{label}/nodes", property) else utils.get("#{@url}/db/data/label/#{label}/nodes") rNodeByLabel: readNodeByLabel