Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

142
Vistas
Neo4j: emparejar una persona que tiene solo una relación del tipo

Tengo un ejercicio en el que tengo que encontrar actores que actuaron SOLO en la película dada en params. El problema es que no estoy seguro de si es posible hacerlo en una consulta neo4j pura o si tengo que hacerlo usando algunas cosas de JS. Mi idea era tomar a todos los actores que juegan en la película, guardarlos en alguna constante y luego, para cada actor, encontrar películas y contarlas y luego filtrar de alguna manera a los actores, ¿quizás solo tiene una película en algún conjunto?

Gracias de antemano por cualquier consejo.

 router.get('/:id/distinct_actors', async (req, res) => { const session = driver.session(); let data=[] await session .run(`MATCH (a: Actor)-[r: ACTED_IN]->(m: Movie) WHERE id(m)= ${req.params.id} RETURN m.title, a.name`) .subscribe({ onKeys: keys => { console.log(keys) }, onNext: records => { data.push({ title: records.get('m.title'), actor_name: records.get('a.name') }) console.log(data) //console.log(records.get('a.name')) //console.log(records.get('ID(a)').toString()) }, onCompleted: () => { session.close() return res.send(data) } }) });
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Es posible que pueda usar UNWIND, algo como esto:

 MATCH (a: Actor)-[r: ACTED_IN]->(m: Movie) WHERE id(m)= ${req.params.id} WITH m, COLLECT( a ) AS ACTORS UNWIND ACTORS AS a MATCH (a) WHERE NOT EXISTS( (m)<-[:ACTED_IN]-(a)-[:ACTED_IN]->(b:Movie) ) RETURN m.title, a.name;

Lo siento, no he intentado esto, pero básicamente obtienes a todos los actores que actuaron en tu película de destino, los colocas en una matriz (a través de COLLECT) y luego DESENROLLAS la matriz y filtras los actores donde existe una ruta que los vincula a algunos otra película que no sea 'm'.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Supongo que puedes hacer esto:

 MATCH (myMovie:Movie) WHERE id(myMovie)= ${req.params.id} WITH myMovie MATCH (a:Actor) WHERE [(a)-[:ACTED_IN]->(m:Movie) | m ] = [myMovie] RETURN a.name,myMovie.title
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda