Will try it out for sure. But another idea maybe. When I run this: CREATE LINK comments TYPE linkset FROM comment.postId To post.id INVERSE
This run great. it connects to right entries with each other. Just missing the real edges and you cannot set properties this way. So maybe would it be good to do this. And after this another statement that looks for those connections and creating on them the real edges. WDYT? Am Mittwoch, 27. August 2014 22:33:05 UTC+2 schrieb odbuser: > > Ok, sorry, I misunderstood your original intent. I didn't realize that > person.id=post.id. > > create edge doesn't take a where clause so that won't work. > > You can almost do it with update like so: > update person add out_Wrote=( select from post where id = $parent.current.id > ) > update car add in_Wrote=( select from person where id = $parent.current.id > ) > # Cleanup the empty collections > update person remove out_Wrote where out_Wrote.size() = 0 > update car remove in_Wrote where in_Wrote.size() = 0 > > but that stores the edge as the wrong type even though graph functions > seem to work fine... this is also implementation specific and things > probably break down if your edges have properties... or if the > implementation changes over time... and it may not even be efficient. > > Your only choice may be to do it programmatically in a loop using one of > the apis... or create a js script and run it using the js or jss console > commands... > > #Note that function definition defaults to sql so you have to specify > javascript > create function test "somejavascript" LANGUAGE javascript > select test() > > The select statement will print a bogus empty record but it does execute > your javascript. functions are stored in the class OFunction so you can > manage them using SQL > select from OFunction > delete from OFunction > etc. > > Your javascript can include loops and access the database. Check the wiki > documentation. > > On Wednesday, August 27, 2014 2:34:30 AM UTC-4, Curtis Mosters wrote: >> >> But image one million entries. So I need a for loop in SQL. Looking for >> an id in Person and then doing this statement above. Is that possible? >> >> Edit: Also tried >> create edge Wrote let $a = 1 from ( select from person where id = $a ) >> to ( select from post where id = $a ) >> >> but does not work. In that way I could do another SELECT on Person. But >> yeah it does not work =/ >> >> >> >> Am Dienstag, 26. August 2014 23:33:41 UTC+2 schrieb odbuser: >>> >>> Alex is right. Just replace personID and postID with actual values (and >>> use an appropriate link name). >>> >>> In your example: >>> >>> create edge hasPost from ( select from person where id = 1 ) to ( select >>> from post where id = 1 ) >>> >>> >>> -- --- 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.
