Wow, thank you,
I just tried it and this goes around the limit problem, so it is definitely
a possible solution!
If anybody knows how to set the Rid Bag threshold higher, would be probably
faster and lighter on the server as it would use only a simple query.
Otherwise at least for now I might implement this solution. Thanks again
[d]
Il giorno martedì 1 settembre 2015 14:47:14 UTC+2, Johan Sjöberg ha scritto:
>
> A better way could be:
>
> *select *, $posts *
> *from User *
> *let $posts = (select expand(in('author')) from $parent.$current)*
> *where username = ..*
>
> The $parent.$current would be a specific user, you then expand the edge to
> the posts. Which you then return as $posts
> Not entirely sure of the direction of you edge but I'm sure you figure it
> out!
>
> I know nothing about RID_BAG_EMBEDDED_TO_SBTREEBONSAI_THRESHOLD thou.
>
> / Johan
>
> On Tuesday, September 1, 2015 at 2:13:13 PM UTC+2, Davide Neri wrote:
>>
>> Hi,
>> I am developing a web app on node.js and using OrientDB.
>> For some functionalities I need to make queries on a structure like this:
>>
>> User (V)
>> Post (V)
>>
>> author (E)
>>
>> User -- author --› Post
>>
>>
>> And queries should retrieve the User(s) element(s) and the posts he is
>> author of...all in the same structure:
>>
>> [ {
>> @rid: #9:1,
>> @class: User,
>> name: user1,
>> posts: [ {
>> @rid: #10:1,
>> @class: Post,
>> name: post1
>> }, {
>> @rid: #10:2,
>> @class: Post,
>> name: post2
>> } ]
>> }, {
>> @rid: #9:2,
>> @class: User,
>> name: user2,
>> posts: [ ... ]
>> } ]
>>
>>
>> Basically, I'm currently doing this in 2 steps:
>>
>> *select * from User where ...*
>>
>>
>> where I get something like:
>>
>> [ {
>> @rid: #9:1,
>> @class: User,
>> name: user1,
>> out_author: [#10:1, #10:2]
>> }, {
>> @rid: #9:2,
>> @class: User,
>> name: user2,
>> out_author: [#10:3, #10:3]
>> } ]
>>
>>
>> From this result I collect all the rids of the first query and make a
>> second query:
>>
>> *select expand(out('author')) from Post where @rid in [USERS_RIDS]*
>>
>>
>> where I get something like:
>>
>> [ {
>> @rid: #10:1,
>> @class: Post,
>> name: post1
>> }, {
>> @rid: #10:2,
>> @class: Post,
>> name: post2
>> } ]
>>
>>
>>
>> And in the end I merge the results of the two queries by matching the
>> @rids in out_author of the first results and @rids of the Posts in the
>> second results.
>>
>> This all works well, until I have just a few edges.. but when edges start
>> to become more than 40 the out_author becomes blank...and my whole
>> algorithm breaks. So here are my two questions:
>>
>> - I was reading that to have more rids returned I need to change the
>> RID_BAG_EMBEDDED_TO_SBTREEBONSAI_THRESHOLD to a bigger number... I tried to
>> change the orientdb-server-config.xml adding an entry in properties....but
>> I can't see any results. I'm pretty sure I'm adding a wrong entry, but I
>> can't understand any clear explanation of what I should do. Do you know
>> what exactly should I do to change this value?
>>
>> - Also... is there another better way to achieve the same result I need
>> to have with my algorithm? Is it possible to be achieved with a single
>> query or in some way that doesn't rely on matching rids?
>>
>>
>>
>> Thank you very much for your help!
>>
>>
>>
--
---
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/d/optout.