データと呼ばれるコレクションがあります。各ドキュメントは次のようになります。
x: {"value"=>1358747699.6922424}, y: {"value"=>17.9}
また、x.value と y.value にインデックスがあります。組み込みの mongoid 集計 .min を使用して、最小の y 値を取得したいと考えました。私はこれをやってみました:
data.min(:'y.value')
そして、それは16.2を返しますが、これは正しくないことがわかっています.14.4である必要があります。これは次の方法で証明できます。
data.map{|d| d['y']d['value']}.sort.first
14.4を返します
または:
data.order_by([:'y.value', :asc]).limit(1).first['y']['value']
14.4も返します
なぜ .min が正しく動作していないように見えるのかわかりませんか?