Dans mon application des médias sociaux, j'ai db Neo4j pour l'AMI, PARUTION, LIKE, COMMENTAIRE, les relations SHARE comme ceNeo4j compte des relations de nœuds séparément
nœuds
(User{user_id})
(Post{title, text, created, picture})
Arêtes
(User)-[:FRIEND]->(User)
(User)-[:POSTED]->(Post)
(Post)-[:PINNED]->(User)
(User)-[:LIKE]->(Post)
(User)-[:SHARE]->(Post)
Je suis à la recherche d'une requête qui renvoie toutes les données de tous les messages Posté par moi OU PINNED à moi OU POSTED AND PINNED à un AMI de moi en incluant le compte de LIKE Relations et SHARE Relations de chaque poste. En plus de cela, je veux retourner le user_id de chaque utilisateur avec une relation POSTED à l'un de ces messages. Tout cela ORDER BY créé DESC.
Le résultat im recherche serait quelque chose comme ça
{
{
user_id:56,
text:'This is a test',
title:'This is a title',
created:'2016.12.01.18.00.00'
post_picture:'',
likecount:9,
sharecount:3
},
{
user_id:52,
text:'This is a test',
title:'This is a title',
created:'2016.12.01.17.00.00'
post_picture:'',
likecount:12,
sharecount:4
}
}
Cela ne fonctionne pas
MATCH (post)-[:POSTED]-(user:User)-[:FRIEND]-(friend:User)
WHERE (user{user_id:'97'})-[:POSTED]-(post)
OR (user{user_id:'97'})-[:PINNED]-(post)
OR (friend{user_id:'97'})-[:FRIEND]-(user)-[:PINNED]-(post)
AND(friend{user_id:'97'})-[:FRIEND]-(user)-[:POSTED]-(post)
OPTIONAL MATCH (post)-[liked:LIKE]-(b:User)
OPTIONAL MATCH (post)-[share:SHARE]-(d:User)
WITH post, user, count(liked) as likecount,
count(share) as sharecount
RETURN DISTINCT
user.user_id as user_id,
post.title as title,
post.text as text,
post.picture as post_picture,
post.created as created,
likecount,
sharecount,
ORDER BY created DESC
est-il même un moyen d'obtenir tout cela en une seule requête?
Merci pour la réponse rapide. Cette requête me semble parfaitement logique, mais chaque fois que j'essaie cela dans mon code, j'obtiens un "échec inattendu" à la ligne où j'appelle result.hasNext() – Patrick
Puisqu'il s'agit d'une question purement Cypher, vous devriez créer un nouvelle question et inclure les détails pertinents sur votre code. – cybersam