nosql - tutorial - para que sirve elastic search
Consulta de cifrado para crear mĂșltiples nodos y relaciones (1)
¿Tus representaciones son una lista? Entonces solo puedes tener eso como la única declaración de creación.
Supongo que Neo4j 1.9 de su sintaxis.
Lo que puedes hacer es usar FOREACH
START stack=node({stack})
CREATE (item {item})
CREATE (stack)-[:Item]->(item)
FOREACH (r in {representations} :
CREATE (representation {r}), (item)-[:Representation]->(representation)
)
MATCH (item)-[:Representation]->(representations)
RETURN item, representations
Intento escribir una consulta Cypher para crear múltiples nodos y relaciones en una consulta. La documentación sobre el uso de cláusulas CREATE
en Cypher establece que no es posible crear múltiples nodos de diferentes tipos en una CREATE
cláusula CREATE
.
Sin embargo, insinúa que debería poder descomponerlo en múltiples CREATE
. Un par de respuestas similares que he leído apuntan a la misma solución también. Intenté hacer esto y sigo obteniendo el error de respuesta.
Error: If you create multiple elements, you can only create one of each.
Aquí hay un breve resumen de lo que estoy tratando de hacer.
- Crea un nodo de
item
. - Crea múltiples nodos de
representation
. - Crea una relación entre el nodo de
item
creado y un nodo destack
existente. - Cree relaciones múltiples entre el nodo del
item
creado y los nodos derepresentation
creados.
Esta es la consulta que estoy usando actualmente, que intenta dividir todas las partes individuales del proceso CREATE
en pasos individuales.
START stack=node({stack})
CREATE (item {item})
CREATE (representations {representations})
CREATE (stack)-[:Item]->(item)
CREATE (item)-[:Representation]->(representations)
RETURN item, representations
He intentado varias variaciones de la consulta anterior, incluida la creación del item
y los nodos de representation
al comienzo de la consulta.
Realmente apreciaría cualquier consejo. Realmente no quiero recurrir a realizar múltiples llamadas a la base de datos si puede evitarse.