Удалить нулевые значения из списка в neo4j - PullRequest
0 голосов
/ 28 сентября 2018

У меня следующий запрос:

MATCH (dd:Dod)
        WHERE dd.name contains 'cu'
        WITH collect({displayName:dd.displayName, type: 'Dod',
             link: {name: dd.name},
             date: apoc.date.format(coalesce(dd.modifiedAt, dd.createdAt))}) as rows1

        OPTIONAL MATCH (dn:Dod)<-[:BELONGS_TO]-(nn:Namespace)
        WHERE nn.name contains 'cu'
        WITH 
        rows1 + collect({displayName:nn.displayName, type: 'namespace',
             link:  {name: nn.name, DodName:dn.name},
             date: apoc.date.format(coalesce(nn.modifiedAt, nn.createdAt))}) as rows2

        OPTIONAL MATCH (de:Dod)<-[:BELONGS_TO]-(ne:Namespace)<-[:BELONGS_TO]-(ee:Edod)
        WHERE ee.name contains 'cu'
        WITH rows2 + collect({displayName:ee.displayName, type: 'Edod',
             link:  {name: ee.name, DodName: de.name, namespaceName: ne.name},
             date: apoc.date.format(coalesce(ee.modifiedAt, ee.createdAt))}) as rows3

UNWIND rows3 as row
RETURN row
ORDER BY row.date DESC
SKIP 0
LIMIT 10;

В результате я получил необходимые значения + ноль по группам (если система не нашла результат для Dod / Namespace / Edod) Мне нужно удалить этот ноль из строк3,Как я могу это сделать?

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете добавить предложение WHERE перед оператором RETURN:

UNWIND rows3 as row
WHERE row IS NOT NULL
RETURN row
ORDER BY row.date DESC
SKIP 0
LIMIT 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...