Thanks Gary, that what I figured but it's good to know for certain. On Mar 4, 11:12 am, Gary <[email protected]> wrote: > If there is a specific order from values of fields in the db, such as > by id, you can do: > > Foo.all :id => [946, 157, 688, 947, 948, 949], :order => [:id] > > But if it's an arbitrary order, you are out of luck, if you want to do > just one query. > > a = [946, 157, 688, 947, 948, 949] > h = {} > Foo.all(:id => a).each{|x| h[x.id] = x} > a.map{|x| h[x]} > > -Gary > > On Mar 2, 4:05 pm, Rolly <[email protected]> wrote: > > > I've been trying to retrieve a bunch of records based on an array of > > ids, say [946, 157, 688, 947, 948, 949], but I need the results in > > the original order of the ids, so record 946, then 157, etc. > > > I've trawled though the docs and source code and I know I can do > > something like Foo.all :id => [946, 157, 688, 947, 948, 949] to get a > > bunch of docs by id, but that doesn't seem to preserve the order. I > > assume it defaults to sorting by primary key instead. > > > Is there some way to do this directly with DataMapper, or should I > > just try and sort them after the query?
-- You received this message because you are subscribed to the Google Groups "DataMapper" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/datamapper?hl=en.
