neo4j-graphql / neo4j-graphql-java

Neo4j Labs Project: Pure JVM translation for GraphQL queries and mutations to Neo4j's Cypher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

wrong mapping starting query from rich relationship

Andy2003 opened this issue · comments

given

Schema:

type Movie {
  title: String
  ratings: [Rated] @relation(name:"RATED")
}
interface Person {
  name: String
}
type User {
  name: String
  rated(rating: Int): [Rated]
}
type Rated @relation(name:"RATED", from: "user", to: "movie") {
  user: User
  rating: Int
  movie: Movie
}

Query:

query {
    r: rated( rating_gte : 3) {
      rating
      movie {
        title
      }
    }
}

I get following cypher:

MATCH ()-[r:RATED]->()
WHERE r.rating >= $r_rating 
RETURN r {
	.rating, 
	movie: r {
		.title
	}
} AS r

But I would expect something like:

MATCH ()-[r:RATED]->()
WHERE r.rating >= $r_rating
RETURN r {
	.rating,
	movie: head([()-[r]->(movie:Movie) | movie {
		.title
	}])
} AS r