MongoDB / Mongoid vám to umožňují. Váš příklad bude fungovat, jen je nesprávná syntaxe.
@stocks = Stock.Where(:prices.value.lt => p) #does not work
@stocks = Stock.where('prices.value' => {'$lt' => p}) #this should work
A stále je řetězitelný, takže si můžete objednat i podle jména:
@stocks = Stock.where('prices.value' => {'$lt' => p}).asc(:name)
Snad to pomůže.