Neo4j

 Neo4j Solutions


Library database:


create(author:Person{name:"John Le Carre",born:19-10-1932})

create(reader:Person{name:"lan"})

create(reader:Person{name:"Alan"})

create(supplier:Person{name:"Rahul"})

create(book1:Book{name:"Story Book",title:["Tinker","Tailor","Soldier","spy"],published:1974,city:"Pune"})

create(book2:Book{name:"Suspens Story Book",title:"One Man in Havana",published:1958,city:'Mumbai'})

create(publisher1:Publisher{name:'Mr.Joshi',City:'Pune'})

match(n) return n


Relationships:

match(a:Publisher),(b:Book) where a.name="Mr.Joshi" and b.name="Story Book" create (a)-[r1:published_by]->(b) 


match(a:Publisher),(b:Book) where a.name="Mr.Joshi" and b.name="Suspense Story Book" create (a)-[r1:published_by]->(b) 


match(a:Person),(b:Book) where a.name="John Le Carre" and b.name="Story Book" create (a)-[r1:WROTE]->(b) 


match(a:Person),(b:Book) where a.name="Alan" and b.name="Story Book" create (a)-[r4:Issued_by]->(b) return a,b


match(a:Person),(b:Book) where a.name="lan" and b.name="Suspense Story Book" create (a)-[r4:Issued_by]->(b) return a,b


match(a:Person),(b:Book) where a.name="Mr.John" and b.name="Suspens Story Book" create (a)-[r5:WROTE]->(b)


match(a:Person),(b:Book) where a.name="Alan" and b.name="Story Book" create (a)-[r2:RECOMMENDED{date:05-07-2011}]->(b)


match(a:Person),(b:Book) where a.name="Alan" and b.name="Story Book" create (a)-[r3:READ{date:9-9-2011}]->(b) 

match(a:Person),(b:Book) where a.name="Rahul" and b.name="Story Book" create (a)-[r3:Supplies]->(b) 


match(a:Person),(b:Book) where a.name="Rahul" and b.name="Suspens Story Book" create (a)-[r3:Supplies]->(b) 


match(a:Person),(b:Book) where a.name="lan" and b.name="Suspense Story Book" create (a)-[r3:READ{date:9-9-2011}]->(b) 











If we want to delete particular relationship then use below code

match (a)-[r3:READ{date:9-9-2011}]->(b) Delete r3




Queries


1] List all people, who have issued a book “Our Man in Havana”.


MATCH (rd:Person)-[r:Issued_by]->(b:Book)

WHERE b.title='One Man in Havana' and rd.name='lan'

RETURN b,r,rd











2] Count the number of people who have read “….”


MATCH (a:Person)-[r:READ]->(b:Book)

WHERE b.title="One Man in Havana"

RETURN COUNT(a)



COUNT(a)


1

1











3] Add a property

“Number of books issued “  for Mr. Joshi and set its value as the count


MATCH (ir:Person{name:'lan'})

SET ir.No_of_Issued=1

RETURN ir







4] List the names of publishers from pune city

match(p:Publisher{City:'Pune'})

return p.name


OutPut:


p.name



"Mr.Joshi"



5:List all readers who have recommended either book "Tinker","Tailor","Soldier","spy"] or "One Man in Havana" 


MATCH (a:Person)-[r:RECOMMENDED]->(b:Book) WHERE b.title=["Tinker","Tailor","Soldier","spy"] OR b.title="One Man in Havana" RETURN a



╒═══════════════╕

│"a"            │

╞═══════════════╡

│{"name":"Alan"}│

└───────────────┘

6: List the readers who haven’t recommended any book

MATCH (a:Person) WHERE NOT (a:Person)-[:RECOMMENDED]->(:Book) return a


════════════════════════════════════════════╕

│"a"                                         │

╞════════════════════════════════════════════╡

│{"born":-1923,"name":"John Le Carre"}       │

├────────────────────────────────────────────┤

│{"name":"lan","No_of_Issued":1}             │

├────────────────────────────────────────────┤

│{"name":"Rahul"}                            │

├────────────────────────────────────────────┤

│{"born":-1912,"name":"Mr.John","died":-1993}│

├────────────────────────────────────────────┤

│{"born":-1923,"name":"John Le Carre"}       │

└───────────────────────────────────────


7: List the reader names who have read/ issued  books and display their count.

MATCH (a:Person)-[r:Issued_by]->(b:Book) RETURN a.name,b.title,COUNT(b)

╒════════╤═══════════════════════════════════╤══════════╕

│"a.name"│"b.title"                          │"COUNT(b)"│

╞════════╪═══════════════════════════════════╪══════════╡

│"lan"   │"One Man in Havana"                │1         │

├────────┼───────────────────────────────────┼──────────┤

│"Alan"  │["Tinker","Tailor","Soldier","spy"]│1         │

└────────┴───────────────────────────────────┴──────────┘

8: List the names of voracious readers in our library

MATCH (a:Person) WHERE NOT(a:Person)-[:Issued_by]->(:Book) RETURN a.name


╒═══════════════╕

│"a.name"       │

╞═══════════════╡

│"John Le Carre"│

├───────────────┤

│"Rahul"        │

├───────────────┤

│"Mr.John"      │

├───────────────┤

│"John Le Carre"│

└───────────────┘























Song Database:



create(artist:person{name:"Luis"}) 

create(Song:song{name:"Tu hi Haqeeqat"}) 

create(SongAuthor:person{name:"Javed Ali"}) 

create(RecordingStudio:place{name:"Mumbai"}) 

create(RecordingCompany:RC{name:"T-Series"}) 

match(n) return (n)


Relationships:


match(a:person),(b:song) where a.name="Luis" and b.name="Tu hi Haqeeqat" create (a)-[r1:PERFORMS]->(b)



match(a:song),(b:person) where a.name="Tu hi Haqeeqat" and b.name="Javed Ali" create (a)-[r2:WRITTEN_BY]->(b)


match(a:song),(b:place) where a.name="Tu hi Haqeeqat" and b.name="Mumbai" create (a)-[r3:RECORDED_IN]->(b) return a,b


match(a:place),(b:RC) where a.name="Mumbai" and b.name="T-Series" create (a)-[r4:MANAGED_BY]->(b) 


match(a:RC),(b:song) where a.name="T-Series" and b.name="Tu hi Haqeeqat" create (a)-[r5:FINANCES]->(b)

















Queries



1:List the names of songs written by“:…..”


match(a:song)-[WRITTEN_BY]->(b:person{name:'Javed Ali'}) where a.name="Tu hi Haqeeqat" return a


╒═════════════════════════╕

│"a"                      │

╞═════════════════════════╡

│{"name":"Tu hi Haqeeqat"}│

└─────────────────────────┘



2: List the names of record companies who have financed for the song“….”

Match(rec:RC)-[r:FINANCES]->(s:song) where s.name='Tu hi Haqeeqat'  return rec,s


╒═══════════════════╤═════════════════════════╕

│"rec"              │"s"                      │

╞═══════════════════╪═════════════════════════╡

│{"name":"T-Series"}│{"name":"Tu hi Haqeeqat"}│

└───────────────────┴─────────────────────────┘


3: List the names of artist performing the song“…..”

MATCH (a:person)-[r:PERFORMS]->(s:song) WHERE s.name='Tu hi Haqeeqat' RETURN a,s


╒═══════════════╤═════════════════════════╕

│"a"            │"s"                      │

╞═══════════════╪═════════════════════════╡

│{"name":"Luis"}│{"name":"Tu hi Haqeeqat"}│

└───────────────┴─────────────────────────┘



4:Name the songs recorded by the studio “…….”

MATCH (s:song)-[r:RECORDED_IN]->(rec:place) WHERE rec.name='Mumbai' RETURN s, rec



╒═════════════════════════╤═════════════════╕

│"s"                      │"rec"            │

╞═════════════════════════╪═════════════════╡

│{"name":"Tu hi Haqeeqat"}│{"name":"Mumbai"}│

└─────────────────────────┴─────────────────┘


Movie Database:


create(actor:Actor{name:"Kartik",add:"Mumbai",phno:"2346568687"})

create(movies:movie{name:"Luka Chupi",year:2019,rate:'3'}) 

create(roles:rol{name:"Hero"}) 

create(producer:prd{name:"Laxman Utekar",phno:'7856749543',add:"Mumbai"}) 

create(financer:Financer{name:"Dinesh Vijan",add:"Pune",phno:6478987445})

create(Director:director{name:"Mohit Suri",add:"US",phno:7658342189})


create(movies:movie{name:"Padmaavat",year:2018}) 

create(actor:Actor{name:"Shahid Kapoor,Ranbeer Kapoor",add:"UK",phno:4567893201})

create(actor:Actor{name:"Ranbeer Kapoor",add:"Pune",phno:8765340932})




match(Director) return Director



Relationships:

match(a:Actor),(b:movie) where a.name="Kartik" and b.name="Luka Chupi" create (a)-[r1:Acted]->(b)


match(a:prd),(b:movie) where a.name="Laxman Utekar" and b.name="Luka Chupi" create (a)-[r2:produced]->(b)


match(a:Financer),(b:movie) where a.name="Dinesh Vijan" and b.name="Luka Chupi" create (a)-[r3:financed]->(b) 



match(a:director),(b:movie) where a.name="Mohit Suri" and b.name="Luka Chupi" create (a)-[r4:direct]->(b)



match(a:Person),(b:rol) where a.name="Kartik" and b.name="Hero" create (a)-[r5:play_as]->(b)


match(a:Actor),(b:movie) where a.name="Ranbeer Kapoor" and b.name="Padmaavat" create (a)-[r2:Acted]->(b)


match(a:Actor),(b:movie) where a.name="Shahid Kapoor,Ranbeer Kapoor" and b.name="Padmaavat" create (a)-[r2:Acted]->(b)

match(a:prd),(b:movie) where a.name="Laxman Utekar" and b.name="Padmaavat" create (a)-[r2:produced]->(b)




Queries:

1: Find all actors who have acted in a movie “Luka Chupi”.

MATCH (p:Person)-[r1:Acted]->(m:movie)

where m.name='Luka Chupi'

return p.name


╒════════╕

│"p.name"│

╞════════╡

│"Kartik"│

└────────┘



2:Find all movies produced by  “ Laxman Utekar ”


MATCH (p:prd)-[:produced]->(m:movie)

where p.name="Laxman Utekar"

Return m.name


╒════════════╕

│"m.name"    │

╞════════════╡

│"Luka Chupi"│

├────────────┤

│"Padmaavat" │

└────────────┘


3: Find all actors that acted in a movie after 2010 and return the actor names and movie node


MATCH (p:Person)-[:Acted]->(m:movie)

WHERE m.year>2010

RETURN p.name, m.name

╒══════════════════════════════╤════════════╕

│"p.name"                      │"m.name"    │

╞══════════════════════════════╪════════════╡

│"Kartik"                      │"Luka Chupi"│

├──────────────────────────────┼────────────┤

│"Shahid Kapoor,Ranbeer Kapoor"│"Padmaavat" │

└──────────────────────────────┴────────────┘
















Employee database:

CREATE (Emp1:Emp {name:'Harry', Qualification:'MCS', experience:8})

CREATE (Emp2:Emp {name:'Kevin', Qualification:'MCA', experience:6})

CREATE (Emp3:Emp {name:'Jayson', Qualification:'B.Tech', experience:7})

CREATE (Dept1:Dept {name:'IT', no_of_employees:5})

CREATE (Dept2:Dept {name:'BPO', no_of_employees:3})

CREATE (Skill1:SkillSet {name:'skill1',skills:['Good Communication','Java Devloper']})

CREATE (Skill2:SkillSet {name:'skill2',skills:['Fluent Communication','Leadership

Qualities','Optimistic']})

CREATE (Proj1:Project {name:'SG Website Design', TimeSpan:'30days'}) 

CREATE (Proj2:Project {name:'Food Deliver app', TimeSpan:'35days'})

CREATE (Proj3:Project {name:'Ecommerce Website Design', TimeSpan:'50days'})


Relationships:

MATCH (a:Emp),(b:Dept) WHERE a.name='Harry' AND b.name='IT' CREATE (a)-[:Works_In]->(b)

MATCH (a:Emp),(b:Dept) WHERE a.name='Kevin' AND b.name='BPO' CREATE (a)-[:Works_In]->(b)

MATCH (a:Emp),(b:Dept) WHERE a.name='Kevin' AND b.name='IT' CREATE (a)-[:Works_In]->(b)

MATCH (a:Emp),(b:Dept) WHERE a.name='Jayson' AND b.name='BPO' CREATE (a)-[:Works_In]->(b)

MATCH (a:Emp),(b:SkillSet) WHERE a.name='Harry' AND b.name='skill1' CREATE (a)-[:Acquires]->(b)

MATCH (a:Emp),(b:SkillSet) WHERE a.name='Kevin' AND b.name='skill2' CREATE (a)-[:Acquires]->(b)

MATCH (a:Emp),(b:SkillSet) WHERE a.name='Jayson' AND b.name='skill1' CREATE (a)-[:Acquires]->(b)

MATCH (a:Emp),(b:SkillSet) WHERE a.name='Jayson' AND b.name='skill2' CREATE (a)-[:Acquires]->(b)

MATCH (a:Emp),(b:Project) WHERE a.name='Kevin' AND b.name='SG Website Design'CREATE (a)-[:Assigned_To]->(b)

MATCH (a:Emp),(b:Project) WHERE a.name='Kevin' AND b.name='Food Deliver app'CREATE (a)-[:Assigned_To]->(b)

MATCH (a:Emp),(b:Project) WHERE a.name='Jayson' AND b.name='Food Deliver app'CREATE (a)-[:Assigned_To]->(b)

MATCH (a:Emp),(b:Project) WHERE a.name='Harry' AND b.name='Ecommerce Website Design' CREATE (a)-[:Assigned_To]->(b)

MATCH (a:Project),(b:Dept) WHERE a.name='Ecommerce Website Design' AND b.name='IT'CREATE (a)-[:Controlled_By]->(b)

MATCH (a:Project),(b:Dept) WHERE a.name='SG Website Design' AND b.name='IT'CREATE (a)-[:Controlled_By]->(b)

MATCH (a:Project),(b:Dept) WHERE a.name='Food Deliver app' AND b.name='BPO'CREATE (a)-[:Controlled_By]->(b)

MATCH (a:Emp),(b:Project) WHERE a.name='Kevin' AND b.name='Food Deliver app'CREATE (b)-[:Project_Manager]->(a)







1: List the names of employees in department “BPO”.


MATCH (e:Emp)-[:Works_In]->(d:Dept) WHERE d.name='BPO' return e.name

╒════════╕

│"e.name"│

╞════════╡

│"Jayson"│

├────────┤

│"Kevin" │

└────────┘




2: List the projects along with their properties, controlled by department “IT”.

match (d:Dept{name:'IT'})<-[:Controlled_By]-(p:Project) return p


OR


match (d:Dept)<-[:Controlled_By]-(p:Project)where d.name='IT' return p


╒═══════════════════════════════════════════════════════╕

│"p"                                                    │

╞═══════════════════════════════════════════════════════╡

│{"TimeSpan":"30days","name":"SG Website Design"}       │

├───────────────────────────────────────────────────────┤

│{"TimeSpan":"50days","name":"Ecommerce Website Design"}│


3: List the departments along with the count of employees in it.

match (e:Emp)-[:Works_In]->(d:Dept) return d,COUNT(e)

╒══════════════════════════════════╤══════════╕

│"d"                               │"COUNT(e)"│

╞══════════════════════════════════╪══════════╡

│{"name":"IT","no_of_employees":5} │2         │

├──────────────────────────────────┼──────────┤

│{"name":"BPO","no_of_employees":3}│2         │

└──────────────────────────────────┴──────────┘


 4: List the skillset for an employee “Jayson”.

MATCH (e:Emp{name:'Jayson'})-[:Acquires]->(s:SkillSet) return s


OR 


MATCH (e:Emp)-[:Acquires]->(s:SkillSet) where e.name='Jayson'return s


╒══════════════════════════════════════════════════════════════════════╕

│"s"                                                                   │

╞══════════════════════════════════════════════════════════════════════╡

│{"skills":["Fluent Communication","Leadership

\nQualities","Optimistic│

│"],"name":"skill2"}                                                   │

├──────────────────────────────────────────────────────────────────────┤

│{"skills":["Good Communication","Java Devloper"],"name":"skill1"}     │

└──────────────────────────────────────────────────────────────────────┘


5: List the projects controlled by a department “BPO” and have employees of the same department working in it.

match (d:Dept{name:'BPO'})<-[:Controlled_By]-(p:Project)<-[:Assigned_To]-(e:Emp),

(e:Emp)-[:Works_In]->(d:Dept) return d,p,e


╒══════════════════════════════════╤═══════════════════════════════════════════════╤═════════════════════════════════════════════════════════╕

│"d"                               │"p"                                            │"e"                                                      │

╞══════════════════════════════════╪═══════════════════════════════════════════════╪═════════════════════════════════════════════════════════╡

│{"name":"BPO","no_of_employees":3}│{"TimeSpan":"35days","name":"Food Deliver app"}│{"Qualification":"B.Tech","name":"Jayson","experience":7}│

├──────────────────────────────────┼───────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤

│{"name":"BPO","no_of_employees":3}│{"TimeSpan":"35days","name":"Food Deliver app"}│{"Qualification":"MCA","name":"Kevin","experience":6}    │

└──────────────────────────────────┴───────────────────────────────────────────────┴─────────────────────────────────────────────────────────






6: List the names of the projects belonging to departments managed by employee “Kevin”.

match (e:Emp{name:'Kevin'})<-[:Project_Manager]-(p:Project)-[:Controlled_By]->(d:Dept)

return p,d


╒═══════════════════════════════════════════════╤══════════════════════════════════╕

│"p"                                            │"d"                               │

╞═══════════════════════════════════════════════╪══════════════════════════════════╡

│{"TimeSpan":"35days","name":"Food Deliver app"}│{"name":"BPO","no_of_employees":3}│

└───────────────────────────────────────────────┴──────────────────────────────────┘

Comments

Popular posts from this blog

Mongodb3

Mongodb4

Mongodb1