Prev |  | Next

## 5.6. Co-favorited places

Figure 5.4. Graph

### 5.6.1. Co-favorited places — users who like x also like y

Find places that people also like who favorite this place:

- Determine who has favorited place x.
- What else have they favorited that is not place x.

Query.

    MATCH (place)<-[:favorite]-(person)-[:favorite]->(stuff)
    WHERE place.name = 'CoffeeShop1'
    RETURN stuff.name, count(*)
    ORDER BY count(*) DESC , stuff.name

The list of places that are favorited by people that favorited the start place.

Result

stuff.name | count(*)
--- | ---
3 rows
`"MelsPlace"` | `2`
`"CoffeShop2"` | `1`
`"SaunaX"` | `1`

### 5.6.2. Co-Tagged places — places related through tags

Find places that are tagged with the same tags:

- Determine the tags for place x.
- What else is tagged the same as x that is not x.

Query.

    MATCH (place)-[:tagged]->(tag)<-[:tagged]-(otherPlace)
    WHERE place.name = 'CoffeeShop1'
    RETURN otherPlace.name, collect(tag.name)
    ORDER BY length(collect(tag.name)) DESC , otherPlace.name

This query returns other places than CoffeeShop1 which share the same tags; they are ranked by the number of tags.

Result

otherPlace.name | collect(tag.name)
--- | ---
3 rows
`"MelsPlace"` | `["Cool","Cosy"]`
`"CoffeeShop2"` | `["Cool"]`
`"CoffeeShop3"` | `["Cosy"]`

Copyright © 2014 Neo Technology

Prev | Up | Next
| Home |