Sure: m = [:]; g.v(162).in('R_PartOf').loop(1){m.put(it.object, it.loops); true}.cap.next().sort{a, b -> a.value <=> b.value}.keySet >> []
Marko. http://markorodriguez.com On Nov 4, 2011, at 12:17 PM, Peter Neubauer wrote: > Can you do it on one line? ;) > > Great stuff. > > 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 > > http://www.neo4j.org - NOSQL for the Enterprise. > http://startupbootcamp.org/ - Ă–resund - Innovation happens HERE. > > > > On Fri, Nov 4, 2011 at 11:12 AM, Marko Rodriguez <okramma...@gmail.com> wrote: >> Hi, >> >> I would do it like this: >> >> m = [:] >> g.v(162).in('R_PartOf').loop(1){m.put(it.object, it.loops); true} >> -1 >> m.sort{a, b -> a.value <=> b.value}.keySet as List >> >> In short, fill up a Map (m) with key being the vertex and value being the >> number of "hops" (or times through the loop). Then sort the map by the >> number of times through the loop and return the keySet. Since you wanted a >> List (not a Set), then "as List" the Set result. >> >> HTH, >> Marko. >> >> http://markorodriguez.com >> >> On Nov 4, 2011, at 10:25 AM, baldric wrote: >> >>> I'm very new to much of this, and have a particularly ingrained relational >>> slant to my career, unfortunately. >>> I'm in the process of doing a proof of concept for a product, using neo4j, >>> and gremlin over REST (we're developing in c#) What I'm trying to do at the >>> moment is load a graph (representing a sort of flexible taxonomy), into a >>> flattened list. So, given a starting node, find all associated nodes across >>> a particular relationship type, no matter how far away. I will ultimately >>> need this in a list, and I want the list sorted by how far away each node is >>> (am I correct in referring to this as "hops"?) >>> Anyway, my best attempt at the unsorted query so far looks something like >>> this: (by the way, the "unique" part worries me a little....) >>> >>> x = []; g.v(162).in('R_PartOf').aggregate(x).loop(2){true} >> -1; x.unique() >>> >>> (Please try not to laugh too much! :) ) >>> >>> How would I alter this to ensure it is sorted by "distance" from starting >>> node? >>> >>> Thanks in advance! >>> >>> -- >>> View this message in context: >>> http://neo4j-community-discussions.438527.n3.nabble.com/Gremlin-how-to-flatten-a-tree-and-sort-tp3480586p3480586.html >>> Sent from the Neo4j Community Discussions mailing list archive at >>> Nabble.com. >>> _______________________________________________ >>> 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