Last active
December 17, 2015 17:08
-
-
Save rvanbruggen/5643379 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
************************************************* | |
**** BEER DATASET - CYPHER Query Examples **** | |
************************************************* | |
**** Beers from same brewery as DUVEL **** | |
START duvel=node:node_auto_index(name="Duvel") | |
MATCH | |
duvel<-[:BREWS]-brewery, | |
duvel-[:IS_A]->beertype, | |
otherbeer<-[:BREWS]-brewery, | |
otherbeer-[:IS_A]->beertype2 | |
RETURN | |
otherbeer.name AS name, | |
beertype2.name AS beertype; | |
**** Beers from same brewery as ORVAL **** | |
START orval=node:node_auto_index(name="Orval") | |
MATCH | |
orval<-[:BREWS]-brewery, | |
orval-[:IS_A]->beertype, | |
otherbeer<-[:BREWS]-brewery, | |
otherbeer-[:IS_A]->beertype2 | |
RETURN | |
otherbeer.name AS name, | |
beertype2.name AS beertype; | |
**** Beers from same type as ORVAL - ALL BELGIAN TRAPPISTS **** | |
START orval=node:node_auto_index(name="Orval") | |
MATCH | |
orval<-[:BREWS]-brewery, | |
orval-[:IS_A]->beertype, | |
otherbeer-[:IS_A]->beertype | |
RETURN | |
otherbeer.name AS name, | |
beertype.name AS beertype | |
ORDER BY otherbeer.name; | |
**** Beers that have same alcohol percentage as DUVEL **** | |
START duvel=node:node_auto_index(name="Duvel") | |
MATCH | |
duvel-[:HAS_ALCOHOL_PERCENTAGE]->alcohol, | |
duvel-[:IS_A]->beertype, | |
otherbeer-[:HAS_ALCOHOL_PERCENTAGE]->alcohol, | |
otherbeer-[IS_A]->otherbeertype | |
RETURN | |
otherbeer.name AS name, | |
otherbeertype.name AS beertype | |
ORDER BY otherbeer.name; | |
**** Beers that have same alcohol percentage and same type as DUVEL **** | |
START duvel=node:node_auto_index(name="Duvel") | |
MATCH | |
duvel-[:HAS_ALCOHOL_PERCENTAGE]->alcohol, | |
duvel-[:IS_A]->beertype, | |
otherbeer-[:HAS_ALCOHOL_PERCENTAGE]->alcohol, | |
otherbeer-[:IS_A]->beertype | |
RETURN | |
otherbeer.name AS name, | |
beertype.name AS beertype | |
ORDER BY otherbeer.name; | |
**** Beers that have same alcohol percentage and same type as ORVAL **** | |
START orval=node:node_auto_index(name="Orval") | |
MATCH | |
orval-[:HAS_ALCOHOL_PERCENTAGE]->alcohol, | |
orval-[:IS_A]->beertype, | |
otherbeer-[:HAS_ALCOHOL_PERCENTAGE]->alcohol, | |
otherbeer-[:IS_A]->beertype | |
RETURN | |
otherbeer.name AS name, | |
beertype.name AS beertype; | |
*** | |
*** Find breweries that brew beers of same alcholpercentage as Duvel *** | |
*** | |
START | |
duvel=node:node_auto_index(name='Duvel') | |
MATCH | |
duvel-[:HAS_ALCOHOL_PERCENTAGE]->alcohol, | |
alcohol<-[:HAS_ALCOHOL_PERCENTAGE]-otherbeers, | |
otherbeers<-[BREWED_BY]-brewery | |
RETURN alcohol.name, otherbeers.name, brewery.name; | |
**** All Paths between two beers BEFORE/AFTER transaction **** | |
START | |
duvel=node:node_auto_index(name="Duvel"), | |
orval=node:node_auto_index(name="Orval") | |
MATCH p = AllshortestPaths( duvel-[*]-orval ) | |
RETURN p; | |
**** Transaction example **** | |
**** Adding Rik and his love for Duvel and Orval **** | |
begin | |
START | |
orval=node:node_auto_index(name="Orval"), | |
duvel=node:node_auto_index(name="Duvel") | |
CREATE | |
(rik{name:"Rik"}), | |
rik-[:LOVES]->orval, | |
rik-[:LOVES]->duvel | |
RETURN rik; | |
commit | |
**** Adding Rik and his love for Duvel and Orval - in one ASCII-art statement **** | |
begin | |
START | |
orval=node:node_auto_index(name="Orval"), duvel=node:node_auto_index(name="Duvel") | |
CREATE | |
orval<-[:LOVES]-(rik{name:"Rik"})-[:LOVES]->duvel | |
RETURN rik; | |
**** Finding number of beers per beertype **** | |
START | |
beertype=node:node_auto_index(type="BeerType") | |
MATCH | |
beer-[:IS_A]-beertype, | |
beer-[:HAS_ALCOHOL_PERCENTAGE]-alcperc | |
RETURN | |
beertype.name as BeerType, count(beer) as NumberOfBeers | |
ORDER BY NumberOfBeers DESC; | |
**** Demonstrate transaction ISOLATION **** | |
START rik=node:node_auto_index(name="Rik") MATCH rik-[r]-() RETURN r; | |
commit | |
rollback | |
**** Removing Rik and all Relationships **** | |
begin | |
START rik=node:node_auto_index(name="Rik") | |
MATCH rik-[rels]-() | |
delete rik,rels; | |
commit | |
**** Console **** | |
START root=node(0) | |
CREATE (orval{id:'1', name:'Orval', type:'BeerBrand'}), | |
(duvel{id:'2', name:'Duvel', type:'BeerBrand'}), | |
(heksemiebier{id:'3', name:'Heksemiebier', type:'BeerBrand'}), | |
(wilderengoud{id:'4', name:'Wilderen Goud', type:'BeerBrand'}), | |
(andorval{id:'10', name:'Abdij Notre-Dame d Orval', type:'Brewery'}), | |
(moortgat{id:'11', name:'brewery Duvel Moortgat', type:'Brewery'}), | |
(wilderen{id:'12', name:'brewery Wilderen', type:'Brewery'}), | |
(achilles{id:'13', name:'Microbrewery Achilles', type:'Brewery'}), | |
(hogegisting{id:'20', name:'Hoge gisting', type:'Beertype'}), | |
(trappist{id:'21', name:'Trappist', type:'Beertype'}), | |
(sixtwo{id:'30', name:'6.2', type:'AlcoholPercentage'}), | |
(eightfive{id:'31', name:'8.5', type:'AlcoholPercentage'}), | |
duvel-[:IS_A]->hogegisting, | |
duvel-[:ALCOHOL_PERCENTAGE]->eightfive, | |
duvel-[:BREWED_BY]->moortgat, | |
orval-[:IS_A]->trappist, | |
orval-[:ALCOHOL_PERCENTAGE]->sixtwo, | |
orval-[:BREWED_BY]->andorval, | |
heksemiebier-[:IS_A]->hogegisting, | |
heksemiebier-[:ALCOHOL_PERCENTAGE]->sixtwo, | |
heksemiebier-[:BREWED_BY]->achilles, | |
wilderengoud-[:IS_A]->hogegisting, | |
wilderengoud-[:ALCOHOL_PERCENTAGE]->sixtwo, | |
wilderengoud-[:BREWED_BY]->wilderen | |
MATCH p = AllshortestPaths( duvel-[*]-orval ) | |
RETURN p; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment