OrientDB: trova tutti i vertici che non hanno vertice di vicino diretto di una determinata classe

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

  •  28-10-2019
  •  | 
  •  

Domanda

Usando il linguaggio delle query di OrientDB, come è possibile trovare tutti i vertici in cluster a che non hanno un vantaggio in uscita che termina in un vertice di classe b (cioè nessun vertice di classe diretta della classe b)? Non importa se hanno altri bordi in uscita.

È stato utile?

Soluzione

Se hai una classe A mappata per cluster A puoi fare:

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

Ciò significa attraversare la proprietà "out" di un record (come bordi), quindi la proprietà "in" (il vertice) e quindi ottenere il nome della classe (@class). Ho usato l'operatore In invece di = (uguali) perché "out.in.@class" restituisce una raccolta di nomi di classe.

Se vuoi non avere una classe e devi passare attraverso il cluster a cluster: sintassi:

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

Ho testato contro l'ultimo 1.0rc8-snapshot e le opere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top