Skip to content
Snippets Groups Projects
Commit 7864e660 authored by Marcel Huber's avatar Marcel Huber
Browse files

restructured Ex 3

parent 46783f17
No related branches found
No related tags found
No related merge requests found
......@@ -379,12 +379,7 @@ Hinweis: `$elemMatch`: Siehe MongoDB-Doku.
### 3.1 Mögliche Prüfungsfrage zu einer Cipher-Query
Gegeben folgende Daten mit Graph ein Query:
- Notieren Sie die exakte Ausgabe auf einem Terminal.
- Kommentieren Sie, was die Query tut.
Daten einfügen:
Gegeben ist der nachfolgende Graph.
``` cypher
CREATE
......@@ -402,30 +397,61 @@ CREATE
(william)-[:WROTE]->(othello)
```
![Abbildung](https://md.coredump.ch/uploads/upload_e1080299d9f4865cda67f764569b2eb6.png)
*Abbildung: Neo4J Beispiel-Graph.*
![Neo4J
Beispiel-Graph](https://md.coredump.ch/uploads/upload_e1080299d9f4865cda67f764569b2eb6.png "Neo4J Beispiel-Graph.")
Query:
*Hinweis*
``` cypher
MATCH (:Reader {name:'Alice'})-[:LIKES]->(:Book {title:'Dune'})
<-[:LIKES]-(:Reader)-[:LIKES]->(books:Book)
RETURN books.title
```
- Notieren Sie jeweils das Cypher Query.
- Kommentieren Sie, was das Query tut.
- Notieren Sie die Ausgabe auf einem Terminal.
<!-- SOLUTION
- ***Lösungsvorschlag***
Cypher Query Fragen:
- Welche Buchtitel haben Personen auch gemocht, welche das Buch *Dune*
mochten (LIKES)?
<!-- SOLUTION
``` cypher
MATCH (:Reader {name:'Alice'})-[:LIKES]->(:Book {title:'Dune'})
<-[:LIKES]-(:Reader)-[:LIKES]->(books:Book)
RETURN books.title as Buchtitel
```
``` console
╒═════════════
│"books.title"│
╞═════════════
│"Othello"
├─────────────
│"Hamlet"
└─────────────
╒═══════════╕
│"Buchtitel"│
╞═══════════╡
│"Othello" │
├───────────┤
│"Hamlet" │
└───────────┘
```
SOLUTION -->
*Hinweis*
- Warum wird *Dune* nicht aufgelistet: Bei der Patternerkennung stellt Neo4j sicher, dass keine Übereinstimmungen enthalten sind, bei denen die gleiche Diagrammbeziehung in einem einzigen Pattern (`MATCH`) mehrfach vorkommt. In den meisten Anwendungsfällen ist dies sinnvoll.
SOLUTION -->
- Erstellen Sie ein Query um eine Liste der Buchtitel mit deren
Authoren auszugeben.
<!-- SOLUTION
``` cypher
MATCH (a:Author)-[:WROTE]->(b:Book)
RETURN b.title as Buchtitel, a.name as Author
````
``` console
╒═══════════╤═════════╕
│"Buchtitel"│"Author" │
╞═══════════╪═════════╡
│"Hamlet" │"William"│
├───────────┼─────────┤
│"Othello" │"William"│
└───────────┴─────────┘
```
SOLUTION -->
## Musterlösung zu den Aufgaben 1 - 3
Die Musterlösung zu dieser Übung finden Sie auf [dieser
......
......@@ -368,12 +368,7 @@ Hinweis: `$elemMatch`: Siehe MongoDB-Doku.
### 3.1 Mögliche Prüfungsfrage zu einer Cipher-Query
Gegeben folgende Daten mit Graph ein Query:
- Notieren Sie die exakte Ausgabe auf einem Terminal.
- Kommentieren Sie, was die Query tut.
Daten einfügen:
Gegeben ist der nachfolgende Graph.
``` cypher
CREATE
......@@ -391,27 +386,60 @@ CREATE
(william)-[:WROTE]->(othello)
```
![Abbildung](https://md.coredump.ch/uploads/upload_e1080299d9f4865cda67f764569b2eb6.png)
*Abbildung: Neo4J Beispiel-Graph.*
![Neo4J
Beispiel-Graph](https://md.coredump.ch/uploads/upload_e1080299d9f4865cda67f764569b2eb6.png "Neo4J Beispiel-Graph.")
Query:
*Hinweis*
``` cypher
MATCH (:Reader {name:'Alice'})-[:LIKES]->(:Book {title:'Dune'})
<-[:LIKES]-(:Reader)-[:LIKES]->(books:Book)
RETURN books.title
```
- Notieren Sie jeweils das Cypher Query.
- Kommentieren Sie, was das Query tut.
- Notieren Sie die Ausgabe auf einem Terminal.
Cypher Query Fragen:
- Welche Buchtitel haben Personen auch gemocht, welche das Buch *Dune*
mochten (LIKES)?
``` cypher
MATCH (:Reader {name:'Alice'})-[:LIKES]->(:Book {title:'Dune'})
<-[:LIKES]-(:Reader)-[:LIKES]->(books:Book)
RETURN books.title as Buchtitel
```
``` console
╒═══════════╕
│"Buchtitel"│
╞═══════════╡
│"Othello" │
├───────────┤
│"Hamlet" │
└───────────┘
```
- ***Lösungsvorschlag***
*Hinweis*
- Warum wird *Dune* nicht aufgelistet: Bei der Patternerkennung
stellt Neo4j sicher, dass keine Übereinstimmungen enthalten
sind, bei denen die gleiche Diagrammbeziehung in einem einzigen
Pattern (`MATCH`) mehrfach vorkommt. In den meisten
Anwendungsfällen ist dies sinnvoll.
- Erstellen Sie ein Query um eine Liste der Buchtitel mit deren
Authoren auszugeben.
``` cypher
MATCH (a:Author)-[:WROTE]->(b:Book)
RETURN b.title as Buchtitel, a.name as Author
```
``` console
╒═════════════╕
│"books.title"
╞═════════════╡
│"Othello"
├─────────────┤
│"Hamlet"
└─────────────┘
╒═══════════╤═════════╕
│"Buchtitel"│"Author"
╞═══════════╪═════════╡
│"Hamlet" │"William"
├───────────┼─────────┤
│"Othello" │"William"
└───────────┴─────────┘
```
## Musterlösung zu den Aufgaben 1 - 3
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment