2017-02-10 4 views
0

So können Sie bequem alle Verbindungen zu einem Knoten erhalten, die einer bestimmten Klasse sind durch Abfragenalle Beziehungen Erhalten Sie mit einem Knoten verbunden, die nicht einer bestimmten Klasse sind

select from Foo where both() in (#42:1)

Dadurch werden alle bekommen die Scheitelpunkte der Klasse Foo, die mit dem Scheitelpunkt #42:1 mit ausgehenden oder eingehenden Links verbunden sind.

Jedoch würde, was die Abfrage, wenn ich alle Ecken bekommen wollte, die #42:1 verbunden sind, dass nicht Instanzen der Klasse sind Foo?

Unterstützt OrientDB nativ diese Funktionalität oder müsste ich etwas wie eine Kreuzung machen?

Antwort

1

warum nicht

SELECT * FROM (
... your select query 
) 
WHERE @class <> 'Foo' 

Eine weitere Möglichkeit, mit Hilfe könnte durch die Verwendung passender Ausdruck

MATCH 
{E, where:(@class <> 'Foo')}-your_relation->{class:Foo} 
RETURN E, F 

Rob

+0

Danke vertreten sein! Bemerkenswert ist auch, dass 'instanceof' verwendet werden kann, um nach Basisklasse zu filtern. –

+0

Ich denke, Mustervergleich ist "logisch" der beste Weg, nur bestimmte Klassen zu projizieren. OrientDb-Jungs verbringen viel Zeit, um dieses Produkt zu verbessern. –

Verwandte Themen