MongoDB / Mongoid ti consente di farlo. Il tuo esempio funzionerà, la sintassi non è corretta.
@stocks = Stock.Where(:prices.value.lt => p) #does not work
@stocks = Stock.where('prices.value' => {'$lt' => p}) #this should work
Ed è ancora concatenabile in modo da poter ordinare anche per nome:
@stocks = Stock.where('prices.value' => {'$lt' => p}).asc(:name)
Spero questo sia di aiuto.