2017-10-08 1 views
1

Est-il possible de commander par les nœuds qui ont reçu plus de relations dans un certain laps de temps? Par exemple, j'ai un utilisateur et un film, et un utilisateur peut aimer un film. La relation LIKE a une propriété appelée date, qui correspond au moment où l'utilisateur a aimé le produit.Ordre par nœuds qui ont reçu plus de relations dans un certain laps de temps

Ce que je veux, c'est: les produits qui ont reçu plus de LIKE au cours des 2 derniers jours.

Comment puis-je le faire? :)

+0

Comment stockez-vous les dates dans la base de données? –

+0

Dans ce format: '2017-10-08T16: 49: 54.398Z' – leonero

+0

Ok, donc je crois que la requête affichée dans ma réponse fonctionnera. S'il vous plaît, jetez un oeil! :) –

Répondre

0

Je suppose que vous stockez des dates comme des chaînes comme "2017-09-02 00:00:00". Donc, dans ce cas, je crois que vous pouvez essayer quelque chose comme:

MATCH (:User)-[like:LIKE]->(movie:Movie) 
WHERE like.date > "date from 2 days ago" 
RETURN movie, count(like) as numberOfLikes 
ORDER BY numberOfLikes DESC 
+0

J'ai seulement changé la partie MATCH à 'MATCH (film: Film) <- [like: LIKED] -()' e funcionou. Obrigado! :RÉ – leonero