Bonjour,
Je rencontre un petit problème pour lequel mes recherches n'ont guère donné de résultats. Je m'explique: j'ai une banque de données volumineuse que j'interface sous la forme de tableau d'édition. Les données composant un tableau unique étant nombreuses (minimum 1000, maximum 1 millions de données); je me dois de faire une pagination et je n'arrive pas à obtenir facilement le nombre total de nodes trouvés.
Je prends un exemple de nodes :Property (953 éléments "seulement")
MATCH (p:Property) RETURN p.uid, p.name, COUNT(*) AS total SKIP 0 LIMIT 30
==> 130ms MAIS "total" vaut toujours 1
MATCH (p:Property), (k:Keyword) RETURN p.uid, p.name, COUNT(k) AS total SKIP 0 LIMIT 30
==> "total" vaut bien 953 MAIS le traitement dure 4034ms
(en sachant que p = k puisque chaque "node" ciblé possède 2 labels (un "Property" et un + spécifique, ici dans ce cas "Keyword")
Par contre, avec la réponse donnée, je n'arrive pas à transposer pour un simple "MATCH" sans paramètres/liaisons.
- J'ai recherché dans la doc officielle, mais il n'y a que des exemples d'un SKIP/LIMIT seul ou d'un COUNT seul; jamais d'exemples "combinés". Ca me parait pourtant une fonctionnalité assez habituelle.
Alors oui, je pourrais faire 2 requêtes distinctes (un simple COUNT) pour obtenir le nombre total et ensuite un MATCH/SKIP/LIMIT pour obtenir les résultats... mais je préfère si possible combiner cela en une seule requête (à moins que ce soit une mauvaise idée), à la manière du SQL_CALC_FOUND_ROWS/FOUND_ROWS en mysql...
Merci de votre aide...
Fred.