Skip to content

Instantly share code, notes, and snippets.

@GiuseppeMP
Last active October 15, 2021 19:01
Show Gist options
  • Save GiuseppeMP/705ce0e3db4cf373af335fe3c770ebc0 to your computer and use it in GitHub Desktop.
Save GiuseppeMP/705ce0e3db4cf373af335fe3c770ebc0 to your computer and use it in GitHub Desktop.
neo4j-gist
// subindo o neo4j local
// docker run \ ─╯
// --name nome-que-vc-quiser-do-container \
// -p 7474:7474 -p 7687:7687 \
// -d \
// -v $HOME/uma-folder-sua-pra-nao-perder-dados-do-container/data:/data \
// -v $HOME/uma-folder-sua-pra-nao-perder-dados-do-container/logs:/logs \
// -v $HOME/uma-folder-sua-pra-nao-perder-dados-do-container/import:/var/lib/neo4j/import \
// -v $HOME/uma-folder-sua-pra-nao-perder-dados-do-container/plugins:/plugins \
// --env NEO4J_AUTH=neo4j/test \
// neo4j:latest
// analisando o meta schema
// deletando todos os nodes
MATCH (n) DETACH DELETE n;
// criando um nó simples, sem label
create(node)
// criando um nó com Label. É como se o Label fosse a Table e o Node fosse a Row em sí, mas é só uma analogia pra didatica, n sao equivalentes.
create(nome:Label)
// criando um nó com atributos/propriedades
create(nome:Label { prop: "value" })
// fazendo uma busca simples com Match(equivalente SELECT SQL)
MATCH node:Label
where node.some == 'some'
return node
// creating relação entre nodes
// primeiro é preciso encontrar nos nós com Matchs
MATCH (node:Label), (node2:Label2)
where node.some = 'some' and node2.some = 'some'
// depois que encontrou os nós, criamos as relações, sintaxe: ()-[]->() ou ()<-[]-()
CREATE (node)-[r:relacao]->(node2)
// podesse criar varias relacoes
CREATE (node)-[r:relacao]->(node2)
RETURN node, node2
A palavra create pode causar duplicidade de dados, mas voce pode trocar para MERGE.
merge(node)
// sobre performance https://neo4j.com/news/how-much-faster-is-a-graph-database-really/
// ref neo4j in action
// alternativa opensource: https://www.graphfoundation.org
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment