2017-10-15 11 views
0

Je travaille sur une application qui est un backend pour une librairie. A l'intérieur de l'application neo4j, je voudrais écrire une requête qui va me montrer pour une catégorie tous les livres liés à. Comme si j'avais un fantasme, je verrais tous les livres qui ont une catégorie fantastique. J'ai essayé de manipuler cela MATCH p=()-[r:HAS_CATEGORY]->() RETURN p LIMIT 25 Mais je ne réussis pas à voir les résultats dont j'ai besoin. Je voudrais aussi comprendre par exemple si je veux voir plus de catégories et de livres liés à. J'utilise le dernier Neo4j.Requêtes Cypher: Comment montrer toutes les relations à une catégorie spécifique

Répondre

1

Si je comprends bien, vous partez d'un livre donné et vous voulez voir tous les livres dans la même catégorie?

Quelque chose comme:

MATCH p=(b:Book {id: "xxx"})-[:HAS_CATEGORY]->(c:Category)<-[:HAS_CATEGORY]-(o:Book) WHERE o <> b 
RETURN p 

Hope this helps.

Cordialement, Tom

0

Si vous modèle de données ressemble à ceci:

(:Book)-[:HAS_CATEGORY]->(:Category {name: 'name-of-category'}) 

alors voici une requête Cypher pour obtenir tous Book nœuds avec la "science-fiction" `Catégorie:

MATCH (b:Book)-[:HAS_CATEGORY]->(:Category {name: 'SciFi'}) 
RETURN b; 
+0

cela ne me donne aucun résultat et je pense que j'ai fait quelque chose de mal avec le GraphDB. Sous section de relation, je vois seulement 2 mais pas has_category. Mais les livres que j'ai ont une catégorie assignée. Alors, comment ajouter cela a une catégorie? – Jakub

+0

Je n'ai aucun résultat pour écrire votre requête en utilisant une catégorie Horreur telle qu'elle est dans ma BD. J'ai écrit ceci 'MATCH p = (: Livre) - [r: HAS_CATEGORY] -> (: Catégorie {nom: 'Horreur'}) RETURN p LIMIT 25' Mais écrivant ceci 'MATCH p =() - [r: HAS_CATEGORY ] ->() RETURN p 'me montrer toutes les catégories et les livres pointant vers la catégorie. Qu'est-ce que j'écris mal de voir juste une catégorie avec tous les livres liés? – Jakub