Utilizzando il linguaggio di query di OrientDB, come trovare tutti i vertici nel cluster a
che non hanno un bordo in uscita che termina in un vertice della classe b
(ovvero nessun vertice del vicino diretto di classe b
)? Non importa se hanno altri bordi in uscita.OrientDB: trova tutti i vertici che non hanno un vertice diretto di una data classe
6
A
risposta
3
Se hai una classe A mappato a raggrupparsi un si può fare:
select from A where not([email protected] in ['b'])
Ciò significa attraversare la proprietà "fuori" di record (come i bordi), poi la "a" proprietà (la vertice) e quindi ottenere il nome della classe (@class). Ho usato l'operatore IN invece di = (uguale) perché "out.in. @ class" restituisce una raccolta di nomi di classi.
Se si vuole avere alcun Una classe e si deve passare attraverso il cluster Un cluster uso: sintassi:
select from cluster:A where not([email protected] in ['b'])
ho testato contro ultima 1.0rc8-SNAPSHOT e lavora.
Questa è davvero la sintassi? Non c'è differenza tra i due casi. Non riesco a farlo funzionare (su rc7). Ottengo 'funzione sconosciuta" non "'. La doppia citazione alla fine deve essere abbinata? – Thilo
Funziona solo con 1.0rc8-SNAPSHOT – Lvca
OK, controllerà dopo il rilascio. Qualche modo per farlo con una versione precedente? E qual è il significato della doppia citazione alla fine? – Thilo