Skip to content

Instantly share code, notes, and snippets.

@johnymontana
Last active April 12, 2023 15:33
Show Gist options
  • Save johnymontana/e306c4685a96711ddd4dcfb2f224af3e to your computer and use it in GitHub Desktop.
Save johnymontana/e306c4685a96711ddd4dcfb2f224af3e to your computer and use it in GitHub Desktop.
NICAR 2023 Neo4j Workshop
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Parcel) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Subject) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Bill) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Committee) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Legislator) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Trip) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Organization) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Destination) REQUIRE n.neo4jImportId IS UNIQUE;
CALL apoc.import.json("https://cdn.neo4jlabs.com/data/landgraph/landgraph.json");
MATCH (p:Parcel)
RETURN p LIMIT 10
MATCH (p:Parcel)<-[:LEGISLATES]-(b:Bill)
RETURN * LIMIT 100
MATCH (p:Parcel)<-[:LEGISLATES]-(b:Bill)<-[:SPONSORED]-(l:Legislator)
RETURN * LIMIT 100
MATCH (p:Parcel)<-[:LEGISLATES]-(b:Bill)
WITH p, COUNT(b) AS num_bills
RETURN p.name, num_bills ORDER BY num_bills DESC LIMIT 100
MATCH (p:Parcel {name: "Yellowstone National Park"})
MATCH (p)<-[:LEGISLATES]-(b:Bill)<-[:SPONSORED]-(l:Legislator)
RETURN *
MATCH (l:Legislator)-[:SPONSORED]->(b:Bill)-[:LEGISLATES]->(p:Parcel)
WITH l, COUNT(b) AS num_bills
RETURN l.name AS legislator, num_bills ORDER BY num_bills DESC LIMIT 10
MATCH (l1:Legislator)-[:SPONSORED]->(:Bill)<-[:COSPONSORED]-(l2:Legislator)
CREATE (l1)<-[:INFLUENCED_BY]->(l2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment