Je interrogee une base de données Neo4j qui stocke des stocks de construction. Un exemple de requête est la suivante: maintenant, cela renvoie tous les graphiques ayant un sous-graphique correspondant aux contraintes. J'aimerais en quelque sorte limiter le nombre de nœuds que le graphique de résultats a, donc pour l'exemple donné, je souhaiterais obtenir uniquement les graphiques exactement 3 nœuds, toute pièce de type. P> y a-t-il un façon de faire cela dans Cypher? P> Edit:
Quelque chose comme ça ne fonctionne pas: p>
3 Réponses :
Oui, vous pouvez le faire, comme ceci:
MATCH (s:STOREYVERTEX) <-- (rooms:ROOM) WITH s, count(distinct(rooms)) as numberOfRooms WHERE numberOfRooms = 3 RETURN s;
Ouais, je viens de copier toute la requête de mon application, mais dans cette question de question particulière n'est pas vraiment pertinente. Merci un tas! :)
Hmm, à la deuxième pensée, je ne suis pas sûr que ce soit une solution pour moi. Tous les nœuds ne sont pas des chambres. J'ai édité la requête un peu dans la question - est-il toujours possible dans une telle requête de contraindre les résultats à un graphe avec 3 nœuds, quel que soit leur type?
Il suffit de retirer l'étiquette de la pièce.
J'ai de nouveau édité la question, pour vous montrer ce que je veux réellement. La requête donnée ne fonctionne pas, mais c'est la direction que je veux entrer. Je suis désolé si je ne parviens pas à poser la bonne question, je suis très nouveau à Cypher.
Tout d'abord, vous pouvez étiqueter toutes les pièces comme étant, eh bien, chambre.
Donc, lorsque vous créez une nouvelle, par exemple, le nœud de cuisine, vous l'étiqueteriez à la fois de la cuisine et de la chambre: pour l'instant, vous pouvez ajouter les étiquettes aux nœuds existants comme celui-ci: P> MATCH (s:STOREYVERTEX)-[r]-(room: ROOM)
WITH s, count(r) as rel_count
WHERE rel_count = 3
RETURN s
Qu'est-ce qui a finalement résolu mon problème était:
S'il vous plaît essayez d'utiliser des types de relations sémantiques significatifs dans votre requête.