Consulta de objetos incrustados en Mongoid / rails 3 ("Menor que", operadores mínimos y clasificación)

Estoy usando rieles 3 con mongoid. Tengo una colección de acciones con una colección integrada de precios:

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

Me gustaría obtener las acciones cuyo precio mínimo desde una fecha determinada es inferior a un precio dado p, y luego poder clasificar los precios de cada acción.

Pero parece que Mongodb no permite hacerlo. Porque esto no funcionará:

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

Además, parece que mongoDB no puede ordenar objetos incrustados.

Entonces, ¿hay alguna alternativa para realizar esta tarea?

Tal vez debería poner todo en una colección para poder ejecutar fácilmente la siguiente consulta:

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

Pero realmente quiero obtener resultados agrupados por nombres de acciones después de mi consulta (acciones distintas con una variedad de precios ordenados, por ejemplo). He oído hablar de map / reduce con la función de grupo, pero no estoy seguro de cómo usarlo correctamente con Mongoid.

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

El equivalente en SQL sería algo como esto:

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

Gracias por tu ayuda

Respuestas a la pregunta(3)

Su respuesta a la pregunta