If there's not much overhead, I recommend client side as well. Otherwise, you can only sort on column. Therefore, you could create some sort of inverted index based on the message count.
User 1 sent 50 messages. User 2 sent 10 messages. User 3 sent 25 messages. Then store a separate index that looks like: -> 50-User-1-Key -> 25-User-2-Key -> 10-User-2-Key You'd also have to 0-pad your count so that numbers are correctly compared (12 is less than 110) since you'll have to use some lexical-based sorting. On Wed, Mar 24, 2010 at 1:36 PM, Erez Efrati <ere...@gmail.com> wrote: > Hi, > > I can't figure out how to use model the following using column family and > the way the columns are sorted (by their name). > > Lets say I have a list of users and for each user I wish to display a list > of all the friends he has ordered by the number of messages they sent him so > far (desc from most to least). > > I can't see how this is going to work since the columns sorting is always > by the name of the column and not its value. I thought of having a row for > each user and the columns will be the friends that email him. But the column > name needs to be the number of messages to be sorted and the value will be > the friend's user ID. But then, when a friend is sending a message to > another user how do I increment his count of message he sent so far to that > user? > > How can I model this with Cassandra? Is it possible? > > Thanks in advance, > > Erez Efrati >