Quiero consultar mi base de datos Neo4j y devolver varias de las variables que MATCH
. Desafortunadamente, cada vez que intento esto, recibo un error. Investigué un poco en línea y alguien mencionó que devolver múltiples variables las devuelve como columnas diferentes en lugar de agregar filas a los registros. O algo así. Dado que mis dos variables son del mismo tipo, quiero que se agreguen como filas a la misma matriz de registros.
¿Cómo puedo hacer eso?
Aquí está mi Cypher Query, encapsulada en una función de JavaScript para usar en mi servidor Node.js.
function getMyEvents(tx, userID) { return tx.run("MATCH (self:USER {userID: $userID})" + "MATCH (self)-[h:HOST]->(hostingEvents:EVENT) " + "MATCH (self)-[a:ATTENDING]-(attendingEvents:EVENT) " + "RETURN attendingEvents, hostingEvents", {"userID": userID}) }
Quiero que se devuelvan eventos de attendingEvents
y hostingEvents
de alojamiento como elementos en la misma matriz/filas en el mismo registro. No como columnas diferentes o lo que sea que significaron los comentarios que encontré.
Si leí su pregunta correctamente, entonces lo que quiere es que coincida tanto el HOST
como la relación ATTENDING
entre self
y el :EVENT
. Luego puede hacer coincidir múltiples tipos de relaciones usando |
, dándote el Cypher
MATCH (self:USER {userID: $userID}) MATCH (self)-[:HOST|:ATTENDING]->(event:EVENT) RETURN event
Tenga en cuenta que asumo que ambas relaciones tienen la misma dirección, si no, puede eliminar el >
del patrón.