Hi Peter,

That sounds like a nice idea for sure :)

-----Original Message-----
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On 
Behalf Of Peter Neubauer
Sent: Monday, 5 December 2011 5:31 PM
To: Neo4j user discussions
Subject: Re: [Neo4j] Aggregates inside copySplit()

Wohow,
cool work Romiko! I would love a screencast on this from the .NET side!

Cheers,

/peter neubauer

GTalk:      neubauer.peter
Skype       peter.neubauer
Phone       +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

brew install neo4j && neo4j start
heroku addons:add neo4j



On Mon, Dec 5, 2011 at 6:34 AM, Romiko Derbynew <romiko.derby...@readify.net> 
wrote:
> Hi Marko,
>
> Working nicely now :)
>
> Here is how it looks on our client. I am not sure if I can call _() an 
> identityPipe, any inspiration here? I had to use Aggregate here, instead of 
> Store(), else the Except does not work.
>
> var results = graphClient
>                .RootNode
>                .CopySplit(
>                    new IdentityPipe()
>                        .Out<Agency>(Hosts.TypeKey, a => a.Key == 
> userIdentifier.AgencyKey)
>                        .In<User>(UserBelongsTo.TypeKey)
>                        .Out<Centre>(UserLinkedToCentre.TypeKey)
>                        .In<User>(UserLinkedToCentre.TypeKey)
>                        .In<Referral>(CreatedBy.TypeKey, r => 
> r.Completed == false)
>                        .AggregateV<Referral>("ReferralWithCentres"),
>                    new IdentityPipe()
>                        .Out<Agency>(Hosts.TypeKey, a => a.Key == 
> userIdentifier.AgencyKey)
>                )
>                .FairMerge()
>                .In<Referral>(ReferralBelongsTo.TypeKey, r => 
> r.Completed == false)
>                .As("ReferralId")
>                .ExceptV<Referral>("ReferralWithCentres")
>                .GremlinDistinct()
>                .Out<User>(CreatedBy.TypeKey)
>                .As("UserGivenName")
>                .As("UserFamilyName")
>                .Table<ReferralByGroup, Referral, User, User>(
>                    referral => referral.UniqueId,
>                    user => user.FamilyName,
>                    user => user.GivenName
>                );
>
> Which generates this optimised query.
> ReferralWithCentres = 
> [];g.v(p0)._.copySplit(_().outE[[label:p1]].inV.filter{ 
> it[p2].equalsIgnoreCase(p3) 
> }.inE[[label:p4]].outV.outE[[label:p5]].inV.inE[[label:p6]].outV.inE[[
> label:p7]].outV.filter{ it[p8] == p9 }.aggregate(ReferralWithCentres), 
> _().outE[[label:p10]].inV.filter{ it[p11].equalsIgnoreCase(p12) 
> }).fairMerge.inE[[label:p13]].outV.filter{ it[p14] == p15 
> }.as(p16).except(ReferralWithCentres).uniqueObject().outE[[label:p17]]
> .inV.as(p18).as(p19).table(new Table()){it[p20]}{it[p21]}{it[p22]}.cap
>
> Thanks again for all the help :)
>
> -----Original Message-----
> From: user-boun...@lists.neo4j.org 
> [mailto:user-boun...@lists.neo4j.org] On Behalf Of Marko A. Rodriguez
> Sent: Sunday, 4 December 2011 4:09 PM
> To: Neo4j user discussions
> Subject: Re: [Neo4j] Aggregates inside copySplit()
>
> Hey,
>
> That will probably give you unwanted behavior as aggregate is a greedy step. 
> If you just want to lazily store and not aggregate then:
>
>  Gremlin 1.3:   sideEffect{x.add(it)}
>  Gremlin 1.4:   store(x)
>
> HTH,
> Marko.
>
> http://markorodriguez.com
>
> On Dec 3, 2011, at 8:50 PM, Romiko Derbynew <romiko.derby...@readify.net> 
> wrote:
>
>> Sorry, forgot to complete question. So I use a 
>> x=[];g.v(0).out.copySplit(_().out.aggregate(x), 
>> _().out).fairMerge().out.retain(x). I guess this is not possible, where a 
>> retain clause is used after a fairMerge()?
>>
>> -----Original Message-----
>> From: user-boun...@lists.neo4j.org 
>> [mailto:user-boun...@lists.neo4j.org] On Behalf Of Romiko Derbynew
>> Sent: Sunday, 4 December 2011 2:38 PM
>> To: Neo4j user discussions (user@lists.neo4j.org)
>> Subject: [Neo4j] Aggregates inside copySplit()
>>
>> Hi,
>>
>> Is it possible to use aggregates within a copySplit pipe?
>> _______________________________________________
>> Neo4j mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>>
>> _______________________________________________
>> Neo4j mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
>
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to