HTTP Interface for Traversals
Traversals
ArangoDB's graph traversals are executed on the server. Traversals can be initiated by clients by sending the traversal description for execution to the server.
Traversals in ArangoDB are used to walk over a graph stored in one edge collection. It can easily be described which edges of the graph should be followed and which actions should be performed on each visited vertex. Furthermore the ordering of visiting the nodes can be specified, for instance depth-first or breadth-first search are offered.
Executing Traversals via HTTP
executes a traversal
execute a server-side traversal
POST /_api/traversal
Starts a traversal starting from a given vertex and following. edges contained in a given edgeCollection. The request must contain the following attributes.
A JSON object with these properties is required:
- sort: body (JavaScript) code of a custom comparison function for the edges. The signature of this function is (l, r) -> integer (where l and r are edges) and must return -1 if l is smaller than, +1 if l is greater than, and 0 if l and r are equal. The reason for this is the following: The order of edges returned for a certain vertex is undefined. This is because there is no natural order of edges for a vertex with multiple connected edges. To explicitly define the order in which edges on the vertex are followed, you can specify an edge comparator function with this attribute. Note that the value here has to be a string to conform to the JSON standard, which in turn is parsed as function body on the server side. Furthermore note that this attribute is only used for the standard expanders. If you use your custom expander you have to do the sorting yourself within the expander code.
- direction: direction for traversal
- if set, must be either "outbound", "inbound", or "any"
- if not set, the expander attribute must be specified
- minDepth: ANDed with any existing filters): visits only nodes in at least the given depth
- startVertex: id of the startVertex, e.g. "users/foo".
- visitor: body (JavaScript) code of custom visitor function function signature: (config, result, vertex, path, connected) -> void The visitor function can do anything, but its return value is ignored. To populate a result, use the result variable by reference. Note that the connected argument is only populated when the order attribute is set to "preorder-expander".
- itemOrder: item iteration order can be "forward" or "backward"
- strategy: traversal strategy can be "depthfirst" or "breadthfirst"
- filter: default is to include all nodes:
body (JavaScript code) of custom filter function
function signature: (config, vertex, path) -> mixed
can return four different string values:
- "exclude" -> this vertex will not be visited.
- "prune" -> the edges of this vertex will not be followed.
- "" or undefined -> visit the vertex and follow its edges.
- Array -> containing any combination of the above. If there is at least one "exclude" or "prune" respectivly is contained, it's effect will occur.
- init: body (JavaScript) code of custom result initialization function function signature: (config, result) -> void initialize any values in result with what is required
- maxIterations: Maximum number of iterations in each traversal. This number can be set to prevent endless loops in traversal of cyclic graphs. When a traversal performs as many iterations as the maxIterations value, the traversal will abort with an error. If maxIterations is not set, a server-defined value may be used.
- maxDepth: ANDed with any existing filters visits only nodes in at most the given depth
- uniqueness: specifies uniqueness for vertices and edges visited.
If set, must be an object like this:
"uniqueness": {"vertices": "none"|"global"|"path", "edges": "none"|"global"|"path"}
- order: traversal order can be "preorder", "postorder" or "preorder-expander"
- graphName: name of the graph that contains the edges. Either edgeCollection or graphName has to be given. In case both values are set the graphName is prefered.
- expander: body (JavaScript) code of custom expander function must be set if direction attribute is not set function signature: (config, vertex, path) -> array expander must return an array of the connections for vertex each connection is an object with the attributes edge and vertex
- edgeCollection: name of the collection that contains the edges.
If the Traversal is successfully executed HTTP 200 will be returned. Additionally the result object will be returned by the traversal.
For successful traversals, the returned JSON object has the following properties:
error: boolean flag to indicate if an error occurred (false in this case)
code: the HTTP status code
result: the return value of the traversal
If the traversal specification is either missing or malformed, the server will respond with HTTP 400.
The body of the response will then contain a JSON object with additional error details. The object has the following attributes:
error: boolean flag to indicate that an error occurred (true in this case)
code: the HTTP status code
errorNum: the server error number
errorMessage: a descriptive error message
Return Codes
200: If the traversal is fully executed HTTP 200 will be returned.
400: If the traversal specification is either missing or malformed, the server will respond with HTTP 400.
404: The server will responded with HTTP 404 if the specified edge collection does not exist, or the specified start vertex cannot be found.
500: The server will responded with HTTP 500 when an error occurs inside the traversal or if a traversal performs more than maxIterations iterations.
Examples
In the following examples the underlying graph will contain five persons Alice, Bob, Charlie, Dave and Eve. We will have the following directed relations:
- Alice knows Bob
- Bob knows Charlie
- Bob knows Dave
- Eve knows Alice
- Eve knows Bob
The starting vertex will always be Alice.
Follow only outbound edges
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFNK--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFNO--_",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFNO--B",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFNO--D",
"name" : "Dave"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFNK--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12925",
"_id" : "knows/12925",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFNO--H",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFNK--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFNO--_",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "12925",
"_id" : "knows/12925",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFNO--H",
"vertex" : "alice"
},
{
"_key" : "12929",
"_id" : "knows/12929",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NFNO--J",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFNK--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFNO--_",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFNO--B",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12925",
"_id" : "knows/12925",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFNO--H",
"vertex" : "alice"
},
{
"_key" : "12932",
"_id" : "knows/12932",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NFNO--L",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFNK--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFNO--_",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFNO--D",
"name" : "Dave"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Follow only inbound edges
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "inbound"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFBa--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFBe--_",
"name" : "Eve"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFBa--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12640",
"_id" : "knows/12640",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFBe--H",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFBa--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFBe--_",
"name" : "Eve"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "inbound"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Follow any direction of edges
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"uniqueness" : {
"vertices" : "none",
"edges" : "global"
}
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEv6--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NEv6--D",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NEv6--F",
"name" : "Dave"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEv6--H",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12147",
"_id" : "knows/12147",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEv6--J",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEv6--B",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "12147",
"_id" : "knows/12147",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEv6--J",
"vertex" : "alice"
},
{
"_key" : "12151",
"_id" : "knows/12151",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NEw---_",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEv6--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NEv6--D",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12147",
"_id" : "knows/12147",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEv6--J",
"vertex" : "alice"
},
{
"_key" : "12154",
"_id" : "knows/12154",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NEw---B",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEv6--B",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NEv6--F",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "12147",
"_id" : "knows/12147",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEv6--J",
"vertex" : "alice"
},
{
"_key" : "12160",
"_id" : "knows/12160",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEw---F",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEv6--B",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEv6--H",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "12147",
"_id" : "knows/12147",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEv6--J",
"vertex" : "alice"
},
{
"_key" : "12160",
"_id" : "knows/12160",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEw---F",
"vertex" : "eve"
},
{
"_key" : "12157",
"_id" : "knows/12157",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NEw---D",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEv6--B",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEv6--H",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEv6--_",
"name" : "Alice"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"uniqueness" : {
"vertices" : "none",
"edges" : "global"
}
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Excluding Charlie and Bob
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"filter" : "if (vertex.name === \"Bob\" || vertex.name === \"Charlie\") { return \"exclude\";}return;"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE76--B",
"name" : "Alice"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE76--H",
"name" : "Dave"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE76--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12497",
"_id" : "knows/12497",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE8---_",
"vertex" : "alice"
},
{
"_key" : "12504",
"_id" : "knows/12504",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NE8---D",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE76--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE76--D",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE76--H",
"name" : "Dave"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"filter" : "if (vertex.name === \"Bob\" || vertex.name === \"Charlie\") { return \"exclude\";}return;"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Do not follow edges from Bob
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"filter" : "if (vertex.name === \"Bob\") {return \"prune\";}return;"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NF_G--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NF_G--D",
"name" : "Bob"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NF_G--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12566",
"_id" : "knows/12566",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NF_K--_",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NF_G--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NF_G--D",
"name" : "Bob"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"filter" : "if (vertex.name === \"Bob\") {return \"prune\";}return;"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Visit only nodes in a depth of at least 2
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"minDepth" : 2
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFJ6--D",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFJ6--F",
"name" : "Dave"
}
],
"paths" : [
{
"edges" : [
{
"_key" : "12856",
"_id" : "knows/12856",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFK---B",
"vertex" : "alice"
},
{
"_key" : "12860",
"_id" : "knows/12860",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NFK---D",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFJ6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFJ6--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFJ6--D",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12856",
"_id" : "knows/12856",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFK---B",
"vertex" : "alice"
},
{
"_key" : "12863",
"_id" : "knows/12863",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NFK---F",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFJ6--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFJ6--B",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFJ6--F",
"name" : "Dave"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"minDepth" : 2
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Visit only nodes in a depth of at most 1
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"maxDepth" : 1
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFEq--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFEq--D",
"name" : "Bob"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFEq--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12695",
"_id" : "knows/12695",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFEu--B",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFEq--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFEq--D",
"name" : "Bob"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"maxDepth" : 1
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Using a visitor function to return vertex ids only
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"visitor" : "result.visited.vertices.push(vertex._id);"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
"persons/alice",
"persons/bob",
"persons/charlie",
"persons/dave"
],
"paths" : [ ]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"visitor" : "result.visited.vertices.push(vertex._id);"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Count all visited nodes and return a list of nodes only
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"init" : "result.visited = 0; result.myVertices = [ ];",
"visitor" : "result.visited++; result.myVertices.push(vertex);"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : 4,
"myVertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFTq--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFTq--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFTq--D",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFTq--F",
"name" : "Dave"
}
]
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "outbound",
"init" : "result.visited = 0; result.myVertices = [ ];",
"visitor" : "result.visited++; result.myVertices.push(vertex);"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Expand only inbound edges of Alice and outbound edges of Eve
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"expander" : "var connections = [ ];if (vertex.name === \"Alice\") {config.datasource.getInEdges(vertex).forEach(function (e) {connections.push({ vertex: require(\"internal\").db._document(e._from), edge: e});});}if (vertex.name === \"Eve\") {config.datasource.getOutEdges(vertex).forEach(function (e) {connections.push({vertex: require(\"internal\").db._document(e._to), edge: e});});}return connections;"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFWa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFWa--H",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFWa--B",
"name" : "Bob"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFWa--_",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "13168",
"_id" : "knows/13168",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFWe--_",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFWa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFWa--H",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "13168",
"_id" : "knows/13168",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFWe--_",
"vertex" : "eve"
},
{
"_key" : "13171",
"_id" : "knows/13171",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NFWe--B",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFWa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFWa--H",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFWa--B",
"name" : "Bob"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"expander" : "var connections = [ ];if (vertex.name === \"Alice\") {config.datasource.getInEdges(vertex).forEach(function (e) {connections.push({ vertex: require(\"internal\").db._document(e._from), edge: e});});}if (vertex.name === \"Eve\") {config.datasource.getOutEdges(vertex).forEach(function (e) {connections.push({vertex: require(\"internal\").db._document(e._to), edge: e});});}return connections;"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Follow the depthfirst strategy
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"strategy" : "depthfirst"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NE2m--D",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE2m--F",
"name" : "Dave"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NE2m--D",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE2m--F",
"name" : "Dave"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12322",
"_id" : "knows/12322",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--B",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "12322",
"_id" : "knows/12322",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--B",
"vertex" : "alice"
},
{
"_key" : "12326",
"_id" : "knows/12326",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NE2q--D",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NE2m--D",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12322",
"_id" : "knows/12322",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--B",
"vertex" : "alice"
},
{
"_key" : "12329",
"_id" : "knows/12329",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NE2q--F",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE2m--F",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "12322",
"_id" : "knows/12322",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--B",
"vertex" : "alice"
},
{
"_key" : "12335",
"_id" : "knows/12335",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--J",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "12322",
"_id" : "knows/12322",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--B",
"vertex" : "alice"
},
{
"_key" : "12335",
"_id" : "knows/12335",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--J",
"vertex" : "eve"
},
{
"_key" : "12332",
"_id" : "knows/12332",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NE2q--H",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12332",
"_id" : "knows/12332",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NE2q--H",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "12332",
"_id" : "knows/12332",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NE2q--H",
"vertex" : "eve"
},
{
"_key" : "12335",
"_id" : "knows/12335",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--J",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "12332",
"_id" : "knows/12332",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NE2q--H",
"vertex" : "eve"
},
{
"_key" : "12335",
"_id" : "knows/12335",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--J",
"vertex" : "eve"
},
{
"_key" : "12326",
"_id" : "knows/12326",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NE2q--D",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NE2m--D",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12332",
"_id" : "knows/12332",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NE2q--H",
"vertex" : "eve"
},
{
"_key" : "12335",
"_id" : "knows/12335",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--J",
"vertex" : "eve"
},
{
"_key" : "12329",
"_id" : "knows/12329",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NE2q--F",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE2m--F",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "12332",
"_id" : "knows/12332",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NE2q--H",
"vertex" : "eve"
},
{
"_key" : "12335",
"_id" : "knows/12335",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--J",
"vertex" : "eve"
},
{
"_key" : "12322",
"_id" : "knows/12322",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE2q--B",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE2q--_",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE2m--B",
"name" : "Bob"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE2m--_",
"name" : "Alice"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"strategy" : "depthfirst"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Using postorder ordering
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"order" : "postorder"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFQa--D",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFQa--F",
"name" : "Dave"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFQa--D",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFQa--F",
"name" : "Dave"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
}
],
"paths" : [
{
"edges" : [
{
"_key" : "12994",
"_id" : "knows/12994",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQa--J",
"vertex" : "alice"
},
{
"_key" : "12998",
"_id" : "knows/12998",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NFQa--L",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFQa--D",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12994",
"_id" : "knows/12994",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQa--J",
"vertex" : "alice"
},
{
"_key" : "13001",
"_id" : "knows/13001",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NFQe--_",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFQa--F",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "12994",
"_id" : "knows/12994",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQa--J",
"vertex" : "alice"
},
{
"_key" : "13007",
"_id" : "knows/13007",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQe--D",
"vertex" : "eve"
},
{
"_key" : "13004",
"_id" : "knows/13004",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFQe--B",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12994",
"_id" : "knows/12994",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQa--J",
"vertex" : "alice"
},
{
"_key" : "13007",
"_id" : "knows/13007",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQe--D",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "12994",
"_id" : "knows/12994",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQa--J",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "13004",
"_id" : "knows/13004",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFQe--B",
"vertex" : "eve"
},
{
"_key" : "13007",
"_id" : "knows/13007",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQe--D",
"vertex" : "eve"
},
{
"_key" : "12998",
"_id" : "knows/12998",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NFQa--L",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NFQa--D",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "13004",
"_id" : "knows/13004",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFQe--B",
"vertex" : "eve"
},
{
"_key" : "13007",
"_id" : "knows/13007",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQe--D",
"vertex" : "eve"
},
{
"_key" : "13001",
"_id" : "knows/13001",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NFQe--_",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NFQa--F",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "13004",
"_id" : "knows/13004",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFQe--B",
"vertex" : "eve"
},
{
"_key" : "13007",
"_id" : "knows/13007",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQe--D",
"vertex" : "eve"
},
{
"_key" : "12994",
"_id" : "knows/12994",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQa--J",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "13004",
"_id" : "knows/13004",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFQe--B",
"vertex" : "eve"
},
{
"_key" : "13007",
"_id" : "knows/13007",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NFQe--D",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NFQa--B",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "13004",
"_id" : "knows/13004",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NFQe--B",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NFQa--H",
"name" : "Eve"
}
]
},
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NFQa--_",
"name" : "Alice"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"order" : "postorder"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Using backward item-ordering:
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"itemOrder" : "backward"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NEyy--B",
"name" : "Dave"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NEyy--_",
"name" : "Charlie"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NEyy--B",
"name" : "Dave"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NEyy--_",
"name" : "Charlie"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12237",
"_id" : "knows/12237",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NEyy--L",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "12237",
"_id" : "knows/12237",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NEyy--L",
"vertex" : "eve"
},
{
"_key" : "12240",
"_id" : "knows/12240",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--N",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "12237",
"_id" : "knows/12237",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NEyy--L",
"vertex" : "eve"
},
{
"_key" : "12240",
"_id" : "knows/12240",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--N",
"vertex" : "eve"
},
{
"_key" : "12227",
"_id" : "knows/12227",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--F",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12237",
"_id" : "knows/12237",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NEyy--L",
"vertex" : "eve"
},
{
"_key" : "12240",
"_id" : "knows/12240",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--N",
"vertex" : "eve"
},
{
"_key" : "12234",
"_id" : "knows/12234",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NEyy--J",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NEyy--B",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "12237",
"_id" : "knows/12237",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NEyy--L",
"vertex" : "eve"
},
{
"_key" : "12240",
"_id" : "knows/12240",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--N",
"vertex" : "eve"
},
{
"_key" : "12231",
"_id" : "knows/12231",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NEyy--H",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NEyy--_",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12227",
"_id" : "knows/12227",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--F",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "12227",
"_id" : "knows/12227",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--F",
"vertex" : "alice"
},
{
"_key" : "12240",
"_id" : "knows/12240",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--N",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "12227",
"_id" : "knows/12227",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--F",
"vertex" : "alice"
},
{
"_key" : "12240",
"_id" : "knows/12240",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--N",
"vertex" : "eve"
},
{
"_key" : "12237",
"_id" : "knows/12237",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NEyy--L",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NEyy--D",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12227",
"_id" : "knows/12227",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--F",
"vertex" : "alice"
},
{
"_key" : "12234",
"_id" : "knows/12234",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NEyy--J",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NEyy--B",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "12227",
"_id" : "knows/12227",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NEyy--F",
"vertex" : "alice"
},
{
"_key" : "12231",
"_id" : "knows/12231",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NEyy--H",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NEyu--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NEyu--D",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NEyy--_",
"name" : "Charlie"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"itemOrder" : "backward"
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Edges should only be included once globally, but nodes are included every time they are visited
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"uniqueness" : {
"vertices" : "none",
"edges" : "global"
}
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"result" : {
"visited" : {
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE5e--_",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NE5e--B",
"name" : "Charlie"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE5e--D",
"name" : "Dave"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE5e--F",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
}
],
"paths" : [
{
"edges" : [ ],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
}
]
},
{
"edges" : [
{
"_key" : "12417",
"_id" : "knows/12417",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE5e--H",
"vertex" : "alice"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE5e--_",
"name" : "Bob"
}
]
},
{
"edges" : [
{
"_key" : "12417",
"_id" : "knows/12417",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE5e--H",
"vertex" : "alice"
},
{
"_key" : "12421",
"_id" : "knows/12421",
"_from" : "persons/bob",
"_to" : "persons/charlie",
"_rev" : "_Yf1NE5e--J",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE5e--_",
"name" : "Bob"
},
{
"_key" : "charlie",
"_id" : "persons/charlie",
"_rev" : "_Yf1NE5e--B",
"name" : "Charlie"
}
]
},
{
"edges" : [
{
"_key" : "12417",
"_id" : "knows/12417",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE5e--H",
"vertex" : "alice"
},
{
"_key" : "12424",
"_id" : "knows/12424",
"_from" : "persons/bob",
"_to" : "persons/dave",
"_rev" : "_Yf1NE5e--L",
"vertex" : "bob"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE5e--_",
"name" : "Bob"
},
{
"_key" : "dave",
"_id" : "persons/dave",
"_rev" : "_Yf1NE5e--D",
"name" : "Dave"
}
]
},
{
"edges" : [
{
"_key" : "12417",
"_id" : "knows/12417",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE5e--H",
"vertex" : "alice"
},
{
"_key" : "12430",
"_id" : "knows/12430",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE5i--_",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE5e--_",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE5e--F",
"name" : "Eve"
}
]
},
{
"edges" : [
{
"_key" : "12417",
"_id" : "knows/12417",
"_from" : "persons/alice",
"_to" : "persons/bob",
"_rev" : "_Yf1NE5e--H",
"vertex" : "alice"
},
{
"_key" : "12430",
"_id" : "knows/12430",
"_from" : "persons/eve",
"_to" : "persons/bob",
"_rev" : "_Yf1NE5i--_",
"vertex" : "eve"
},
{
"_key" : "12427",
"_id" : "knows/12427",
"_from" : "persons/eve",
"_to" : "persons/alice",
"_rev" : "_Yf1NE5e--N",
"vertex" : "eve"
}
],
"vertices" : [
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
},
{
"_key" : "bob",
"_id" : "persons/bob",
"_rev" : "_Yf1NE5e--_",
"name" : "Bob"
},
{
"_key" : "eve",
"_id" : "persons/eve",
"_rev" : "_Yf1NE5e--F",
"name" : "Eve"
},
{
"_key" : "alice",
"_id" : "persons/alice",
"_rev" : "_Yf1NE5a--B",
"name" : "Alice"
}
]
}
]
}
},
"error" : false,
"code" : 200
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"uniqueness" : {
"vertices" : "none",
"edges" : "global"
}
}
EOF
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
If the underlying graph is cyclic, maxIterations should be set
The underlying graph has two vertices Alice and Bob. With the directed edges:
- Alice knows Bob
- Bob knows Alice
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"uniqueness" : {
"vertices" : "none",
"edges" : "none"
},
"maxIterations" : 5
}
EOF
HTTP/1.1 500 Internal Server Error
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"error" : true,
"code" : 500,
"errorNum" : 1909,
"errorMessage" : "too many iterations - try increasing the value of 'maxIterations'"
}
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF
{
"startVertex" : "persons/alice",
"graphName" : "knows_graph",
"direction" : "any",
"uniqueness" : {
"vertices" : "none",
"edges" : "none"
},
"maxIterations" : 5
}
EOF
HTTP/1.1 500 Internal Server Error
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
All examples were using this graph: