src/traversal.coffee
_ = require 'lodash' utils = require './utils' module.exports =

Traversal using a return filter

Details

neo
.traverseNode(1, {
    "order" : "breadth_first",
    "return_filter" : {
        "body" : "position.endNode().postProperty('name').toLowerCase().contains('t')",
        "language" : "javascript"
    },
    "prune_evaluator" : {
        "body" : "position.length() > 10",
        "language" : "javascript"
    },
    "uniqueness" : "node_global",
    "relationships" : [ {
        "direction" : "all",
        "type" : "knows"
    }, {
        "direction" : "all",
        "type" : "loves"
    } ],
    "max_depth" : 3
})
traverseRelationship: (nodeId, params) -> utils.post("#{@url}/db/data/node/#{nodeId}/traverse/relationship", params)

Return relationships from a traversal

Details

neo
.traverseNode(1, {
    "order" : "breadth_first",
    "uniqueness" : "none",
    "return_filter" : {
        "language" : "builtin",
        "name" : "all"
    }
})
traverseNode: (nodeId, params) -> utils.post("#{@url}/db/data/node/#{nodeId}/traverse/node", params, (result) -> result.body)

Return paths from a traversal

Details

neo
.traversePath(1, {
    "order" : "breadth_first",
    "uniqueness" : "none",
    "return_filter" : {
        "language" : "builtin",
        "name" : "all"
    }
})
traversePath: (nodeId, params) -> utils.post("#{@url}/db/data/node/#{nodeId}/traverse/path", params, (result) -> result.body)

Creating a paged traverser

Details

neo
.createPagedTraverse(1, {
    "prune_evaluator" : {
        "language" : "builtin",
        "name" : "none"
    },
    "return_filter" : {
        "language" : "javascript",
        "body" : "position.endNode().readProperty('name').contains('1');"
    },
    "order" : "depth_first",
    "relationships" : {
        "type" : "NEXT",
        "direction" : "out"
    }
})
createPagedTraverse: createPagedTraverse = (nodeId, params) -> utils.post( "#{@url}/db/data/node/#{nodeId}/traverse/node", params, (result) -> result.body ) cPagedTraverse: createPagedTraverse

Paging through the results of a paged traverser

Details

neo.pagedTraverse(1, '54ff662853e84dbcbabba3930e0a8fce')
neo.pagedTraverse(1, { pageSize: 1 })
neo.pagedTraverse(1, { leaseTime: 10 })
pagedTraverse: (nodeId, params) -> if _.isString params utils.get("#{@url}/db/data/node/#{nodeId}/paged/traverse/node/#{params}") else if _.isObject params utils.post( "#{@url}/db/data/node/#{nodeId}/paged/traverse/node", params, (result) -> result.body )