Question

J'ai un graphique dans lequel chaque composant connecté a une certaine étiquette disons Comp1, Comp2, etc. Je souhaite faire une requête chiffrée qui renvoie toutes les étiquettes qui ont plus d'un nœud. Je reçois toutes les étiquettes comme ceci:

match (n) return labels(n)

J'ai donc essayé de faire quelque chose comme ça afin d'obtenir uniquement les étiquettes dont j'avais besoin:

match (n) with labels(n) as lb where count(k:lb[0]) >= 2)  return lb limit 10

mais je reçois une erreur de syntaxe:

entrée invalide ')': chiffres attendus, '.', 'E', blanc, étiquettes de nœud, '[', "= ~", Dans, est "*", "/", "%", '^' ',' + ',' - '-', '<', ', ",", ","">=", '=', "<>", "!=", Et, Xor ou, chargez CSV, commencez, assorti, vous détendez-vous, fusionner, Créer, définir, supprimer, supprimer, payer, avec, retourner, l'union, ';'ou fin d'entrée (ligne 1, colonne 57)

Je voudrais également commander les étiquettes par le nombre de nœuds qui ont cette étiquette ...

Était-ce utile?

La solution

avec 2.1

match (n) 
unwind labels(n) as l
with l,count(*) as cnt
where cnt > 2
return l

Autres conseils

Si vous faites cela avec Neo4J Version 2.0, vous pouvez réaliser ce que vous voulez avec cette requête CYPHER:

    Start n=node(*)
    match (n)-->() with n,count(*) as rel_cnt where rel_cnt >= 2 return n;

Mais soyez conscient que cette requête transversale tout le graphe, il est probablement une bonne idée de le limiter à certaines étiquettes.Bravo.

mise à jour

J'ai lu la question comme des nœuds avec plus de 1 relation, mon mauvais.Cette requête ne fera pas ce que l'OP a demandé.

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