## 16.3. Start

16.3.1. Node by id
16.3.2. Relationship by id
16.3.3. Multiple nodes by id
16.3.4. Node by index lookup
16.3.5. Relationship by index lookup
16.3.6. Node by index query
16.3.7. Multiple start points

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, 0 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, 0 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

ab
1 rows, 0 ms

`Node[1]{name->"A"}`

`Node[2]{name->"B"}`