À l'aide de neo4j DISTINCTES et ORDER BY sur des propriétés différentes
Je suis en train de lancer la suite de monogramme de requête sur neo4j la version 1.9M02
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 attendre pour obtenir tous les produits qui sont AJOUTÉS ou STOCKÉS par mes amis qui ne sont pas AJOUTÉS ou STOCKÉS par moi, ordonné par la relation moment de la création. Cette requête renvoie des résultats corrects, mais a deux produits._id valeurs (Un utilisateur AJOUTÉ le produit et d'autres de l'utilisateur STOCKÉ). Mais j'ai besoin d'une seule instance de ce produits._id j'ai donc 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é le DISTINCT pour les produits._id) Mais cette fois j'ai eu Unknown identifier fr
erreur. J'ai donc ajouté fr pour instruction de RETOUR
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 retourne en double id de produit comme avant.
J'ai été la seule à jouer avec neo4j pour les deux derniers jours, afin de ne pas expert en tout. Je serais vraiment reconnaissant si quelqu'un pouvait m'aider ici.
- Salut il y, a une affaire avec console.neo4j.org donc on peut avoir un exemple et la tripoter de partout?
- Salut Pierre, malheureusement je n'ai pas d'exemple. Et j'imagine que ça va prendre âges pour moi pour importer ma base de données dans la console.neo4j. Une question, y aura t il des problèmes de sécurité, si je publie mes neo4j serveur ici? Ce n'est pas les données en direct, seulement dev.
Vous devez vous connecter pour publier un commentaire.
J'ai créé un peu de cas avec console.neo4j.org
Avec la requête suivante, je serai de retour
[4, 3, 2, 4, 3, 2, 4, 3 ,2]
:Mettre distinctes sur la dernière ligne, et je serai de retour
[3, 4, 2]
:Il ressemble à la commande se perd avec distinctes.
MODIFIER
Après le dépôt une question sur github sur ce, il n'a point fallu longtemps avant que j'ai eu un réponse.
La suggestion dans la réponse à cette requête:
J'ai modifié la requête afin qu'elle renvoie uniquement l'id:
Et voila, il retourne
[4, 3, 2]
! (J'ai aussi créé un mise à jour de cas de test.)À l'aide de la fonction d'agrégation MIN, vous pouvez extraire le plus tôt CreatedOn date. Une fois que vous avez cela, la simplicité de l'ensemble de résultats par la date la plus ancienne, comme ceci:
Hth,
Andrés