Palestra apresentada no PHPnRIo 2013.
Pequena introdução sobre NoSQL e o modelo de grafos. Explicação de como o Neo4J funciona e exemplificação utilizando códigos. Finalizando com um pequeno exemplo de rede social com Neo4J e PHP.
15. Euler foi um dos mais
prolíficos matemáticos,
calcula-se que toda a sua
obra reunida teria entre
60 e 80 volumes.
Fonte: Wikipedia, mas eu boto fé!
16. Leonhard Euler
● Número de Euler
● Fórmula de Euler
● Constante de Euler-Mascheroni
● Conjectura de Euler
● Igualdade de Euler
● Teorema de Euler
● Teoria dos grafos
55. Criar um novo nó vazio
POST http://localhost:7474/db/data/node
201 Created
POST http://localhost:7474/db/data/node {"nome":"Suissa"}
201 Created
56. Ler um nó
GET http://localhost:7474/db/data/node/27
200 Ok
GET http://localhost:7474/db/data/node/666
404 Not Found
57. Deleta um nó
DELETE http://localhost:7474/db/data/node/26
204 No Content
*Um nó com relacionamento não pode ser deletado
POST http://localhost:7474/db/data/node {"name":"NoSQL"}
POST http://localhost:7474/db/data/node/27/relationships {"to" :
"http://localhost:7474/db/data/node/28", "type" : "Evangeliza"}
DELETE http://localhost:7474/db/data/node/27
409 Conflict
58.
59. Primeiro o relacionamento
DELETE http://localhost:7474/db/data/relationship/1
204 No Content
DELETE http://localhost:7474/db/data/node/27
204 No Content
E para deletar todos os nós?
60.
61. Adicionando propriedades
POST http://localhost:7474/db/data/node
201 Created
PUT http://localhost:7474/db/data/node/29/properties/idade 28
204 No Content
PUT http://localhost:7474/db/data/node/29/properties {"nome":"
Suissa", "idade":28, "cursos":["neo4j", "mongodb"]}
*Um valor de propriedade não pode ser nulo ou um objeto
JSON.
62. Adicionando propriedades
Estes dois comandos irão falhar:
PUT http://localhost:7474/db/data/node/29/properties {"nome":"
Suissa", "idade":28, "cursos":null}
PUT http://localhost:7474/db/data/node/29/properties {"nome":"
Suissa", "idade":28, "cursos":{"nosql":"mongodb", "nosql":"
neo4j"}}
Mas estes irão funcionar
PUT http://localhost:7474/db/data/node/29/properties {"nome":"
Suissa", "idade":28, "cursos":""}
PUT http://localhost:7474/db/data/node/29/properties {"nome":"
Suissa", "idade":28, "cursos": "{"nosql":"mongodb", "nosql":"
neo4j"}" }
63. Modificando uma propriedade
PUT http://localhost:7474/db/data/node/29/properties/nome
"Cumpadi Uóxinton"
204 No Content
PUT http://localhost:7474/db/data/node/29/properties
{"nome": "Cumpadi Uóxinton"}
204 No Content
64. Deletando uma propriedade
DELETE http://localhost:7474/db/data/node/29/properties/cursos
Deletando todas as propriedades
DELETE http://localhost:7474/db/data/node/29/properties
74. Todos os tipos de relacionamentos
GET http://localhost:7474/db/data/relationship/types
200 OK
["Evangeliza","CONHECE","Ama"]
*Uma vez criado um relacionamento ele não pode mais ser
deletado