Question

J'utilise NEO4J 1.8.3

Je gère une requête qui retourne des données comme

A   1  X
A   2  Y
B   3  Z
C   4  Q
C   5  X

Je voudrais que les données soient présentées comme

A 1,2  X,Y
B 3    Z
C 4,5  Q,X

S'il vous plaît laissez-moi savoir comment nous pouvons faire cela est dans Cypher. Merci d'avance.

Était-ce utile?

La solution

Voici ce que j'ai fait quand j'ai fait face à ce problème exact:

Autant que je ne puisse pas faire, il n'ya aucun moyen que vous puissiez le faire en une fois dans CYPHER.Vous devrez utiliser la déclaration avec la déclaration pour casser votre requête et laisser CYPher collecter des nœuds à mi-chemin et effectuer des opérations de collecte sur des correspondances ultérieures.Qu'est-ce que je veux dire par là?Considérez cet exemple:

Si votre requête actuelle est quelque chose comme ceci:

MATCH (a)--(b)--(c) RETURN a,b,c

Ensuite, vous devrez le changer à la suivante

MATCH {{ Perform match here just for node type 'a' }} WHERE {{ conditions if any }}
WITH a
MATCH (a)--{{ Perform match for 'b' and 'c' here using 'a' }}
RETURN a,collect(b) as first, collect(c) as second
ORDER BY length(first, second) DESC

Si vous avez compris ce que j'essaie de dire, alors allez-y et essayez-le.Sinon, la meilleure façon d'aller de l'avant serait de créer un exemple de jeu de données dans le console Neo4J , enflammer la requête etPartagez-le ici, nous pouvons donc voir exactement ce que vous êtes prêt.

Autres conseils

Si votre clause de retour d'origine était:

RETURN a, b, c

Essayez:

RETURN a, collect(b), collect(c)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top