Adding Properties

In this challenge, you will update the import to add new properties to the Movie nodes and cast them to the correct type.

Previously, you used the following Cypher statement to import the Movie nodes:

cypher
LOAD CSV WITH HEADERS
FROM 'https://data.neo4j.com/importing-cypher/movies.csv'
AS row
MERGE (m:Movie {movieId: toInteger(row.movieId)})
SET
m.tmdbId = toInteger(row.movie_tmdbId),
m.imdbId = toInteger(row.movie_imdbId),
m.released = row.released,
m.title = row.title,
m.year = row.year,
m.plot = row.plot,
m.budget = row.budget

The year and budget properties are not cast and therefore stored as strings.

Update and run the existing import to cast the year and budget properties to integers using the toInteger() function.

cypher
LOAD CSV WITH HEADERS
FROM 'https://data.neo4j.com/importing-cypher/movies.csv'
AS row
MERGE (m:Movie {movieId: toInteger(row.movieId)})
SET
m.tmdbId = toInteger(row.movie_tmdbId),
m.imdbId = toInteger(row.movie_imdbId),
m.released = row.released,
m.title = row.title,
m.year = toInteger(row.year),
m.plot = row.plot,
m.budget = toInteger(row.budget)

The movies.csv file also contains the following additional properties:

  • imdbRating

  • poster

  • runtime

  • imdbVotes

  • revenue

  • url

Review the data in the file and identify the data type and cast function for each property.

Reveal the data types and functions

Property

Data type

Cast function

imdbRating

Float

toFloat()

poster

String

runtime

Integer

toInteger()

imdbVotes

Integer

toInteger()

revenue

Integer

toInteger()

url

String

Finally, update the import to add these properties to the Movie nodes and cast them to the correct type.

Validate Movie properties

Once you have updated the Movie properties to use the correct data type, click the Check Database button to verify that the task is complete.

Hint

Modify the Movie import Cypher to cast the properties to the correct type.

Solution

Run this Cypher statement to update the Movie properties to use the correct data type.

cypher
LOAD CSV WITH HEADERS
FROM 'https://data.neo4j.com/importing-cypher/movies.csv' AS row
MERGE (m:Movie {movieId: toInteger(row.movieId)})
SET
m.tmdbId = toInteger(row.movie_tmdbId),
m.imdbId = toInteger(row.movie_imdbId),
m.released = date(row.released),
m.title = row.title,
m.year = toInteger(row.year),
m.plot = row.plot,
m.budget = toInteger(row.budget),
m.imdbRating = toFloat(row.imdbRating),
m.poster = row.poster,
m.runtime = toInteger(row.runtime),
m.imdbVotes = toInteger(row.imdbVotes),
m.revenue = toInteger(row.revenue),
m.url = row.url

Summary

In this lesson, you applied what you learned from the previous lesson and cast properties to the correct data type.

In the next lesson, you will learn how to create list properties.