Está en la página 1de 7

//Creamos la estructura de la bbdd (Constraints e Indices):

CREATE CONSTRAINT ON (p:Pelicula) ASSERT p.idP IS UNIQUE;


CREATE CONSTRAINT ON (c:Critico) ASSERT c.idC IS UNIQUE;

//call db.constraints

CREATE INDEX index______ FOR (n:Label) ON (n.property);

CREATE INDEX index_Critico FOR (n:Critico) ON (n.nombreCritico);


CREATE INDEX index_Pelicula_titulo FOR (n:Pelicula) ON (n.titulo);
CREATE INDEX index_Pelicula_director FOR (n:Pelicula) ON (n.director);

//call db.indexes

//Creacion de Nodos Pelicula:

MERGE (p:Pelicula{idP:101})
ON CREATE SET
p.titulo='Lo que el viento se llevo',
p.ano='1939',
p.director='Victor Fleming',
p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date()) ;

MERGE (p:Pelicula{idP:102})
ON CREATE SET
p.titulo='La guerra de las galaxias',
p.ano='1977',
p.director='George Lucas',
p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MERGE (p:Pelicula{idP:103})
ON CREATE SET
p.titulo='Sonrisas y lagrimas',
p.ano='1965',
p.director='Robert Wise',

p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date()) ;

MERGE (p:Pelicula{idP:104})
ON CREATE SET
p.titulo='ET',
p.ano='1982',
p.director='Steven Spielberg',

p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MERGE (p:Pelicula{idP:105})
ON CREATE SET
p.titulo='Titanic',
p.ano='1997',
p.director='James Cameron',

p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MERGE (p:Pelicula{idP:106})
ON CREATE SET
p.titulo='Blancanieves y los siete enanitos',
p.Mano='1937',
p.director='Walt Disney',

p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MERGE (p:Pelicula{idP:107})
ON CREATE SET
p.titulo='Avatar',
p.ano='2009',
p.director='James Cameron',

p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MERGE (p:Pelicula{idP:108})
ON CREATE SET
p.titulo='En busca del arca perdida',
p.ano='1981',
p.director='Steven Spielberg',

p.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

//Creacion de Nodos Critico:

MERGE (c:Critico{idC:201})
ON CREATE SET
c.nombreCritico='Sara Martinez',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());

MERGE (c:Critico{idC:202})
ON CREATE SET
c.nombreCritico='Daniel Perez',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());

MERGE (c:Critico{idC:203})
ON CREATE SET
c.nombreCritico='Amalia Sierra',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());
MERGE (c:Critico{idC:204})
ON CREATE SET
c.nombreCritico='Paloma Sanchez',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());

MERGE (c:Critico{idC:205})
ON CREATE SET
c.nombreCritico='Miguel Hernandez',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());

MERGE (c:Critico{idC:206})
ON CREATE SET
c.nombreCritico='Juan Garcia',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());

MERGE (c:Critico{idC:207})
ON CREATE SET
c.nombreCritico='Samuel Lopez',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());

MERGE (c:Critico{idC:208})
ON CREATE SET
c.nombreCritico='Isabel Sanz',
c.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
c.fechaModificacionNeo4jTxt=tostring(date());

//Creacion de Relaciones:

MATCH (c:Critico{idC:201}) WITH c


MATCH (p:Pelicula{idP:101}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=2,
r.fecha='2018-01-22',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:201}) WITH c


MATCH (p:Pelicula{idP:102}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=4,
r.fecha='2018-01-27',
r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:202}) WITH c


MATCH (p:Pelicula{idP:106}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=4,
r.fecha='2018-01-12',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:203}) WITH c


MATCH (p:Pelicula{idP:103}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=2,
r.fecha='2018-01-20',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:203}) WITH c


MATCH (p:Pelicula{idP:108}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=4,
r.fecha='2018-01-12',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:203}) WITH c


MATCH (p:Pelicula{idP:105}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=2,
r.fecha='2018-01-30',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:204}) WITH c


MATCH (p:Pelicula{idP:101}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=3,
r.fecha='2018-01-09',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:205}) WITH c


MATCH (p:Pelicula{idP:103}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=3,
r.fecha='2018-01-27',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:205}) WITH c


MATCH (p:Pelicula{idP:104}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=2,
r.fecha='2018-01-22',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:205}) WITH c


MATCH (p:Pelicula{idP:108}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=4,
r.fecha='2018-01-26',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:206}) WITH c


MATCH (p:Pelicula{idP:107}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=3,
r.fecha='2018-01-15',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:206}) WITH c


MATCH (p:Pelicula{idP:106}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=5,
r.fecha='2018-01-19',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:207}) WITH c


MATCH (p:Pelicula{idP:107}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=5,
r.fecha='2018-01-20',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico{idC:208}) WITH c


MATCH (p:Pelicula{idP:104}) WITH p,c
MERGE (p)<-[r:CRITICA_CINEMATOGRAFICA{idR:c.idC+'-'+p.idP}]-(c)
ON CREATE SET
r.idC=c.idC,
r.idP=p.idP,
r.estrellas=3,
r.fecha='2018-01-02',

r.fechaRegistroNeo4jTxt=tostring(date())
ON MATCH SET
p.fechaModificacionNeo4jTxt=tostring(date());

MATCH (c:Critico)-[r:CRITICA_CINEMATOGRAFICA]->(p:Pelicula) RETURN c.nombreCritico,


COUNT (r);

MATCH (p:Pelicula)<-[r:CRITICA_CINEMATOGRAFICA{estrellas:3}]-() RETURN


p.titulo,p.director;

MATCH (c:Critico)-[r:CRITICA_CINEMATOGRAFICA]->() WHERE r.estrellas=4 AND NOT


r.estrellas=3 RETURN c.nombreCritico;

MATCH (p:Pelicula)<-[r]-(c) WITH COUNT(r) AS cantidad, p WHERE cantidad=1 RETURN


p.titulo;
//Borrado de la bbdd

//Borramos la estructura de la bbdd (Constraints e Indices):

DROP CONSTRAINT ON (p:Pelicula) ASSERT p.idP IS UNIQUE;


DROP CONSTRAINT ON (c:Critico) ASSERT c.idC IS UNIQUE;

//call db.constraints

CREATE INDEX index______ FOR (n:Label) ON (n.property);

DROP INDEX index_Critico;


DROP INDEX index_Pelicula_titulo;
DROP INDEX index_Pelicula_director;

Borrar indices y constraints y tambien el menu de properties que quedan despues de


la carga:

CALL apoc.schema.assert({}, {}, true);

También podría gustarte