sql >> Base de Datos >  >> RDS >> Mysql

Neo4j - Selección de datos con MATCH usando Cypher

MATCH de Cypher declaración le permite encontrar datos que coincidan con un criterio dado. Puedes usar MATCH para devolver los datos o para realizar alguna otra operación en él.

El MATCH se utiliza para coincidir con un criterio determinado, pero en realidad no devuelve los datos. Para devolver cualquier dato de un MATCH declaración, aún necesitamos usar el RETURN cláusula.

Recuperar un nodo

Aquí hay un ejemplo simple del uso de un MATCH sentencia para recuperar un nodo:

MATCH (p:Person)
WHERE p.Name = "Devin Townsend"
RETURN p

El WHERE La cláusula funciona de la misma manera que WHERE de SQL cláusula, ya que le permite restringir los resultados proporcionando criterios adicionales.

Sin embargo, puede lograr el mismo resultado sin usar un WHERE cláusula. También puede buscar un nodo proporcionando la misma notación que utilizó para crear el nodo.

El siguiente código proporciona los mismos resultados que la declaración anterior:

MATCH (p:Person {Name: "Devin Townsend"})
RETURN p

Ejecutar cualquiera de las consultas anteriores dará como resultado que se muestre el siguiente nodo:

Es posible que haya notado que al hacer clic en un nodo se expande un círculo exterior separado en tres secciones, cada una de las cuales representa una opción diferente:

Al hacer clic en la sección inferior, se expandirán las relaciones del nodo:

Relaciones

También puede atravesar relaciones con MATCH declaración. De hecho, esta es una de las cosas en las que Neo4j es realmente bueno.

Por ejemplo, si quisiéramos saber qué artista lanzó el álbum llamado Heavy as a Really Heavy Thing , podríamos usar la siguiente consulta:

MATCH (a:Artist)-[:RELEASED]->(b:Album)
WHERE b.Name = "Heavy as a Really Heavy Thing" 
RETURN a

Esto devolverá el siguiente nodo:

Puedes ver que el patrón que usamos en el MATCH declaración es casi autoexplicativa. Coincide con todos los artistas que lanzaron un álbum con el nombre Heavy as a Really Heavy Thing .

Usamos variables (es decir, a y b ) para que podamos consultarlos más adelante en la consulta. No proporcionamos ninguna variable para la relación, ya que no necesitábamos referirnos a la relación más adelante en la consulta.

También puede notar que la primera línea usa el mismo patrón que usamos para crear la relación en primer lugar. Esto resalta la simplicidad del lenguaje Cypher. Podemos usar los mismos patrones en diferentes contextos (es decir, para crear datos y recuperar datos).

Devolver todos los nodos

Puede devolver todos los nodos en la base de datos simplemente omitiendo cualquier detalle de filtrado. Por lo tanto, la siguiente consulta devolverá todos los nodos en la base de datos:

MATCH (n) RETURN n

Esto da como resultado que se devuelvan todos nuestros nodos:

También puede hacer clic en Filas icono en el lateral para mostrar los datos en formato de fila:

Tenga cuidado al devolver todos los nodos. Hacer esto en una base de datos grande podría tener importantes implicaciones en el rendimiento. Por lo general, se recomienda limitar los resultados para evitar problemas no deseados.

Consulte "Limitar los resultados" a continuación.

Limitar los resultados

Usa LIMIT para limitar el número de registros en la salida. Es una buena idea usar esto cuando no está seguro de cuán grande será el conjunto de resultados.

Así que simplemente podríamos agregar LIMIT 5 a la declaración anterior para limitar la salida a 5 registros:

MATCH (n) RETURN n 
LIMIT 5