Prev |  | Next

## 16.3. Start

Every query describes a pattern, and in that pattern one can have multiple bound points. A bound point is a relationship or a node that form the starting points for a pattern match. You can either bind points by id, or by index lookups.

Graph

### 16.3.1. Node by id

Binding a node as a start point is done with the node(*) function .

Query

    START n=node(1)
    RETURN n

The reference node is returned

Result

n
1 rows, 0 ms
`Node[1]{name->"A"}`

### 16.3.2. Relationship by id

Binding a relationship as a start point is done with the relationship() function, which can also be abbreviated rel().

Query

    START r=relationship(0)
    RETURN r

The relationshop with id 0 is returned

Result

r
1 rows, 0 ms
`:KNOWS[0] {}`

### 16.3.3. Multiple nodes by id

Multiple nodes are selected by listing them separated by commas.

Query

    START n=node(1, 2, 3)
    RETURN n

The nodes listed in the START statement.

Result

n
3 rows, 0 ms
`Node[1]{name->"A"}`
`Node[2]{name->"B"}`
`Node[3]{name->"C"}`

### 16.3.4. Node by index lookup

If the start point can be found by index lookups, it can be done like this: node:index-name(key = "value"). In this example, there exists a node index named nodes.

Query

    START n=node:nodes(name = "A")
    RETURN n

The node indexed with name "A" is returned

Result

n
1 rows, 1 ms
`Node[1]{name->"A"}`

### 16.3.5. Relationship by index lookup

If the start point can be found by index lookups, it can be done like this: relationship:index-name(key = "value"].

Query

    START r=relationship:rels(property = "some_value")
    RETURN r

The relationship indexed with property "some_value" is returned

Result

r
1 rows, 1 ms
`:KNOWS[0] {property->"some_value"}`

### 16.3.6. Node by index query

If the start point can be found by index more complex lucene queries: node:index-name("query").This allows you to write more advanced index queries

Query

    START n=node:nodes("name:A")
    RETURN n

The node indexed with name "A" is returned

Result

n
1 rows, 0 ms
`Node[1]{name->"A"}`

### 16.3.7. Multiple start points

Sometimes you want to bind multiple start points. Just list them separated by commas.

Query

    START a=node(1), b=node(2)
    RETURN a,b

Both the A and the B node are returned

Result

a | b
--- | ---
1 rows, 0 ms
`Node[1]{name->"A"}` | `Node[2]{name->"B"}`

Copyright © 2011 Neo Technology

Prev | Up | Next
| Home |