Orientdb: Encuentre todos los vértices que no tienen vértice vecino directo de una clase dada

StackOverflow https://stackoverflow.com/questions/8862177

  •  28-10-2019
  •  | 
  •  

Pregunta

Usando el lenguaje de consulta de OrientDB, ¿cómo puede encontrar todos los vértices en el clúster? a que no tienen un borde saliente que termine en un vértice de clase b (es decir, ningún vértice vecino directo de clase b)? No importa si tienen otros bordes salientes.

¿Fue útil?

Solución

Si tienes una clase A mapeado para agrupar A, puedes hacer:

select from A where not( out.in.@class in ['b'] )

Eso significa cruzar la propiedad "fuera" de un registro (como bordes), luego la propiedad "in" (el vértice) y luego obtener el nombre de clase (@class). He usado el operador en en lugar de = (es igual) porque "out.in.@class" devuelve una colección de nombres de clases.

Si quieres tener una clase y tienes que pasar por el clúster un clúster de uso: sintaxis:

 select from cluster:A where not( out.in.@class in ['b'] )

He probado contra el último 1.0rc8-snapshot y funciona.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top