Cypher LinkedList Corresponde por índice, mas "Não sei como comparar isso".
Estou tendo problemas com o MATCH por índice e espero que você possa ajudar. Discussões relacionadas podem ser encontradas neste post:Cypher Linked List: como desviar e substituir por índice
Primeiro, eu executo a seguinte consulta unshift três vezes para preencher a lista vinculada com relacionamentos e nós
MATCH (p {id: '123A'})
OPTIONAL MATCH (p)-[r:Foo]->(c)
WITH p, r, COLLECT(c) AS cs
MERGE (cNew {
id:'456B' // and '789C' and 'WXYZ'
})
CREATE (p)-[rNew:Foo {
isFavorite:false,
isOpen:false,
currenttab:'all',
currentdate:2015-10-30T07:00:00.000Z
}]->(cNew)
FOREACH (x IN cs |
CREATE (cNew)-[:Foo {
isFavorite:r.isFavorite,
isOpen:r.isOpen,
currenttab:r.currenttab,
currentdate:r.currentdate
}]->(x)
DELETE r)
RETURN p, rNew, cNew
Posfácio Eu posso buscar a saída com esta consulta, para que eu possa ver que tenho três elementos na minha matriz de lista vinculada, sob o rótulo de relacionamento Foo
MATCH ()-[r:`language-arts_ALLRESOURCES`]->() RETURN r
isFavorite false
isOpen false
currenttab all
currentdate 2015-10-30T07:00:00.000Z
isFavorite false
isOpen false
currenttab all
currentdate 2015-10-30T07:00:00.000Z
isFavorite false
isOpen false
currenttab all
currentdate 2015-10-30T07:00:00.000Z
Em seguida, tento consultar o primeiro índice com essa consulta de criptografia
MATCH (p { id:"123A" })
MATCH (p)-[:Foo*1]->()-[r:Foo]->(c)
RETURN c
Mas estou apresentando o erro abaixo:
Don't know how to compare that. Left: [:Foo[8258]
{isFavorite:false,isOpen:false,currenttab:"all",currentdate:"2015-10-
30T07:00:00.000Z"}] ($colon$colon); Right: :Foo[8260]
{isFavorite:false,isOpen:false,currenttab:"all",currentdate:"2015-10-
30T07:00:00.000Z"} (RelationshipProxy)
Eu tentei buscar com esta consulta:
MATCH (p { id:"123A" })
MATCH (p)-[:Foo*2]->(c)
RETURN c
e esta é a saída que volta
id 789C // which is index 1
Eu também tenho uma ligeira confusão sobre se o índice 1 deve ser buscado com o número inteiro 0 ou 1 ou 2, mas essa confusão, com certeza, pode ser resolvida depois que eu passar por isso 'Não sei como comparar isso'. erro. Ajude-me com orientações sobre a maneira correta de buscar efetivamente pelo índice e evitar o erro listado acima.
Estou muito grato pela sua ajuda
** NOTA **
Depois de ler a resposta do cybersam, executei os seguintes testes na estrutura da lista vinculada mencionada acima, que contém três elementos
Esta consulta retorna o filho na posição do índice 0:
MATCH (p { id:'123A' })
MATCH (p)-[:Foo*0]->()-[r:Foo]->(c)
RETURN c
Esta consulta retorna o filho na posição do índice 1:
MATCH (p { id:'123A' })
MATCH (p)-[:Foo]->()-[r:Foo]->(c)
RETURN c
Esta consulta retorna o "Não sei como comparar isso". erro
MATCH (p { id:'123A' })
MATCH (p)-[:Foo*1]->()-[r:Foo]->(c)
RETURN c
Esta consulta retorna o filho na posição do índice 2:
MATCH (p { id:'123A' })
MATCH (p)-[:Foo*2]->()-[r:Foo]->(c)
RETURN c
Estou assumindo que este último funcione para qualquer coisa> = 2