2016-07-13 11 views
0

У меня есть следующий запрос в Neo4jNeo4j с отчетливым запросом

MATCH (chatitems1)-[:PartOf]->(teamsChat)-[:OwnedBy]-() 
WITH distinct teamsChat as teams order by teams.id limit 10,chatitems1 
return teams 

Я хочу, чтобы выбрать первый 10 различный teams.id упорядоченного и идентификатор chatitems1.

Я получаю ошибку

Invalid input ',': expected 0..9, '.', 'e', 'E', an identifier character, whitespace, node labels, '[', "=~", IN, STARTS, ENDS, CONTAINS, IS, '^', '*', '/', '%', '+', '-', '=', "<>", "!=", '<', '>', "<=", ">=", AND, XOR, OR, WHERE, LOAD CSV, START, MATCH, UNWIND, MERGE, CREATE, SET, DELETE, REMOVE, FOREACH, WITH, RETURN, UNION, ';' or end of input (line 2, column 60 (offset: 115)) 
"WITH distinct teamsChat as teams order by teams.id limit 10,chatitems1" 

Окончательный запрос

MATCH (user)-[:CreatesChat]-(chatitems) 
WITH user ORDER BY user.id DESC LIMIT 10 
MATCH (chatitems1)-[:PartOf]->(teamsChat)-[:OwnedBy]-() 
WITH distinct teamsChat as teams,user,chatitems1 
with user,chatitems1, teams as teams1 order by teams.id limit 10 
with distinct user as users1, chatitems1, teams1 
return chatitems1,teams1 

Я хочу, чтобы teamsChat.id для использования позже,

Как я могу исправить эту ошибку?

ответ

0
  1. вы должны использовать метки
  2. первая часть вашего запроса расширяет пути, так что вы получите дубликаты пользователей
  3. направления использования
  4. у вас есть много дубликата с, который смотрите, как вы знаете, какие вы бы их использовали?
  5. Я не думаю, что вам нужно последняя DISTINCT

попробовать это:

MATCH (user:User) 
WHERE SIZE((user)-[:CreatesChat]->()) > 0 
WITH user ORDER BY user.id DESC LIMIT 10 
MATCH (user)-[:CreatesChat]->(chatitems)-[:PartOf]->(teams) 
WHERE (teamsChat)-[:OwnedBy]-() 
RETURN teams,user, chatitems 
ORDER BY teams.id limit 10 

В реальном мире запроса вы, вероятно, хотите, чтобы вернуть некоторые атрибуты ваших узлов.

Смежные вопросы