Je suis en train d'exécuter la requête Cypher suivante sur la version Neo4j 1.9M02L'utilisation Neo4j PAR DISTINCT et ORDER sur des propriétés différentes
START me=node(2)
MATCH me-[:FOLLOWS]->friends
,friends-[fr:ADDED|STOCKS]->products
,me-[r?]->products
WHERE r is null
RETURN products._id
ORDER BY fr.CreatedOn DESC
SKIP 0
LIMIT 10
Je compte obtenir tous les produits qui sont ajoutés ou stockés par mes amis qui ne sont pas AJOUTÉ ou STOCKÉ par moi, commandé par le temps de création de la relation. Cette requête renvoie des résultats corrects mais a des valeurs dupliquées products.id (un utilisateur a AJOUTÉ le produit et un autre utilisateur STOCKED). Mais j'ai besoin qu'une seule instance de ce products._id donc j'ai essayé
START me=node(2)
MATCH me-[:FOLLOWS]->friends
,friends-[fr:ADDED|STOCKS]->products
,me-[r?]->products
WHERE r is null
RETURN DISTINCT products._id
ORDER BY fr.CreatedOn DESC
SKIP 0
LIMIT 10
(Ajout de la DISTINCT pour products._id) Mais cette fois je suis arrivé Unknown identifier fr
erreur. J'ai donc ajouté fr à l'instruction RETURN
START me=node(2)
MATCH me-[:FOLLOWS]->friends
,friends-[fr:ADDED|STOCKS]->products
,me-[r?]->products
WHERE r is null
RETURN DISTINCT products._id,fr
ORDER BY fr.CreatedOn DESC
SKIP 0
LIMIT 10
Cette requête fonctionne sans erreur mais renvoie les ID de produit en double comme précédemment.
Je joue seulement avec neo4j depuis quelques jours, donc pas du tout expert. J'apprécierais vraiment que quelqu'un puisse m'aider ici.
Salut, eu un cas avec console.neo4j.org afin que nous puissions avoir un exemple et jouer du violon? –
Bonjour Peter, malheureusement, je n'ai aucun exemple. Et je suppose que cela prendra des années pour que j'importe ma base de données sur console.neo4j. Une question, y aura-t-il un problème de sécurité si je publie mon serveur neo4j ici? Ce ne sont pas des données en direct, seulement des dev. – Optimus