Consulta de objetos incorporados no Mongoid / trilhos 3 (“Lower than”, operadores Min e classificação)

Estou usando os trilhos 3 com mongóide. Eu tenho uma coleção de ações com uma coleção incorporada de preços:

class Stock
  include Mongoid::Document
  field :name, :type => String
  field :code, :type => Integer
  embeds_many :prices

class Price
  include Mongoid::Document
  field :date, :type => DateTime
  field :value, :type => Float
  embedded_in :stock, :inverse_of => :prices

Gostaria de obter as ações cujo preço mínimo desde uma determinada data é menor que um preço p e, em seguida, poder classificar os preços de cada açã

Mas parece que o Mongodb não permite fazê-lo. Porque isso não vai funcionar:

@stocks = Stock.Where(:prices.value.lt => p)

lém disso, parece que o mongoDB não pode classificar objetos incorporado

ntão, existe uma alternativa para realizar essa taref

alvez eu deva colocar tudo em uma coleção para poder executar facilmente a seguinte consult

@stocks = Stock.Where(:prices.lt => p)

Mas eu realmente quero obter resultados agrupados por nomes de ações após a minha consulta (ações distintas com uma variedade de preços solicitados, por exemplo). Eu ouvi falar sobre mapear / reduzir com a função de grupo, mas não sei como usá-lo corretamente com o Mongoi

http: //www.mongodb.org/display/DOCS/Aggregatio

O equivalente em SQL seria algo como isto:

SELECT name, code, min(price) from Stock WHERE price<p GROUP BY name, code

Obrigado pela ajuda