1

Ruby を使用して MongoDB でクエリを実行すると、次の出力が得られます。

irb(main):087:0>   data = col.find({}, :fields => ["result", "time"])
=> <Mongo::Cursor:0x14768b8 namespace='spark.light' @selector={} @cursor_id=>

irb(main):090:0> data.first
=> {"_id"=>BSON::ObjectId('537d961197c20960ad000001'), "result"=>2177, "time"=>2014-05-22 06:15:45 UTC}

ここで、このデータを Ruby on Rails で実行されている chartkick に渡して、折れ線グラフを描画します。入力は次のようになります。

"2014-05-22 06:15:45 UTC" => "2177"

それを行うためのきれいな方法はありますか?

4

2 に答える 2

2

これにより、レコードが次のハッシュに変換されますtime => result

Hash[data.map do |item|
  [item['time'], item['result']]
end]

# => { 2014-05-22 06:15:45 UTC => 2177, 2014-05-22 06:20:00 UTC => 1000 }
于 2014-05-30T18:39:11.177 に答える
0

Hash#values_atメソッドで使用Hash::[]

Hash[data.first.values_at('time', 'result')]
于 2014-05-30T18:50:39.170 に答える