1. Introdução ao Neo4j
O banco de dados gráfico é um banco de dados NoSQL implementado com base na teoria dos grafos. Sua estrutura de armazenamento de dados e método de consulta de dados são baseados na teoria dos grafos. O banco de dados gráfico é usado principalmente para armazenar dados mais conectados.
Neo4j é um banco de dados gráfico bem conhecido que fornece linguagem de consulta Cypher.
2. Instalação e inicialização
Antes da instalação, certifique-se de que haja arquivos de tempo de execução do Java 8 no sistema Mac.
2.1 Instalação
Recomenda-se instalar através do brew e usar o seguinte comando:
brew install neo4j
-- 安装路径一般为: /usr/local/opt/neo4j/bin
2.2 Inicialização
cd bin
./neo4j start --verbose
./neo4j stop # 关闭
2.3 Acesso à Web
Depois que o banco de dados for iniciado, faça login localmente em http://localhost:7474 e o navegador poderá inserir neo4j. A senha inicial da conta é neo4j.
Você mesmo pode definir uma nova senha: 12345678
3. Operações comuns e importação de dados
3.1 Operações comuns
3.1.1. Crie um nó
Nó é um elemento básico em um banco de dados gráfico, usado para representar um registro de entidade, assim como um registro em um banco de dados relacional, e pode conter múltiplas propriedades (Properties) e vários rótulos (Label).
create(person:Person{name:"jack", age:18});
3.1.2 Nós de consulta
match(n:Person)
where n.name='jack'
return n
order by n.age
limit 2
forma gráfica
forma tabular
111
3.1.3 Criando relacionamentos
Estabeleça uma relação entre nós de pessoa e cão
match (person:Person), (dog:DOG)
where person.name="jack" and dog.name="buou"
create(person)-[r:R{isOwner:"yes"}]->(dog)
return r
3.2 Backup e importação de dados
Use neo4j para importar dados:
neo4j-admin import --nodes path_of_nodes_data --relationships path_of_relationship_data
Backup e restauração de banco de dados:
# 数据库备份
neo4j-admin dump --database=graph.db --to=/neo4j/backup/graph_backup.dump
# 数据库还原
neo4j-admin load --database=graph.db --from=/neo4j/backup/graph_backup.dump
Consulte todos os nós e todos os nós vizinhos:
MATCH (a)-[:REL]->(b)
RETURN a, b