Thanks Artem, the query worked, I just have to understand exactly how you 
did it :-).  Thanks for the feature request as well.

On Tuesday, January 14, 2014 4:19:39 AM UTC-8, Artem Orobets wrote:
>
> Hi,
>
> I created this 
> <https://github.com/orientechnologies/orientdb/issues/1961>feature request 
> that could be useful for you.
>
> Best regards,
> Artem Orobets
>
> * Orient Technologiesthe Company behind OrientDB*
>  
>
> 2014/1/14 Artem Orobets <[email protected] <javascript:>>
>
>> Hi,
>>
>> Try following way:
>>
>>    1. Select a wrench.
>>    2. traverse to all UsesTool edges
>>    3. filter this edges by car 
>>    4. traverse to mechanics
>>
>> Implementation could be like following:
>> select expand(outV()) from (select expand(inE('UsesTool')) from Tool 
>> where name='Wrench') where CarId[0] in (select from Car where 
>> name='Mercedes')
>>
>> This query fine in small datasets but it will slow down as soon as you 
>> have lots of tools, cars and UsesTool entries. To improve that can 
>> divide it on 3 queries different and add some indexes.
>>
>> I suppose there is a mistake in your schema. When you execute a subquery 
>> it returns a collection of elements so the type of property UsesTool.CarId 
>> will be LINKLIST, but I suppose you need just a LINK. To fix that you 
>> should modify "create edge UsesTool.." query. And then you can use CarId 
>> instead of CarId[0] in query above.
>>
>>
>>
>> Best regards,
>> Artem Orobets
>>
>> * Orient Technologiesthe Company behind OrientDB*
>>  
>>
>> 2014/1/14 arosta <[email protected] <javascript:>>
>>
>>>  Hi guys.  Apologies for the newbie question but two of us have been 
>>> trying to figure out how to query the ‘CarId’ property on the edge called 
>>> ‘UsedOn’ to determine the following with no luck:
>>>
>>> *Who are all the people that use a wrench on a Mercedes?*
>>>
>>>
>>> Here is the script to create the sample db:
>>>
>>> create class Car extends V
>>>
>>> create vertex Car set name='Mercedes'
>>>
>>>
>>> create class Mechanic extends V
>>>
>>> create vertex Mechanic set firstName=‘Andy’, lastName=‘Miller’
>>>
>>> create vertex Mechanic set firstName = ‘Billy’, lastName = ‘Edwards’
>>>
>>>
>>> create class Tool extends V
>>>
>>> create vertex Tool set name=‘Wrench’
>>>
>>>
>>> create class WorksOn extends E
>>>
>>> create edge WorksOn from (select from Mechanic where firstName=‘Billy’) 
>>> to (select from Car where name=‘Mercedes’)
>>>
>>>
>>> create class UsesTool extends E
>>>
>>> create edge UsesTool from (select from Mechanic where firstName='Billy') 
>>> to (select from Tool where name='Wrench') set CarId = (select @Rid from Car 
>>> where name='Mercedes')
>>>
>>>
>>> We've tried googling similar examples but there doesn't seem to be in 
>>> depth documentation about querying based on edge properties (or we're just 
>>> not googling the right search phrase).  That said, any help is greatly 
>>> appreciated.
>>>  
>>>
>>>
>>>  -- 
>>>  
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "OrientDB" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected] <javascript:>.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to