使用mongo获取前一天的最后一个和之前的“gold_id”

时间:2016-11-25 07:58:35

标签: ruby mongodb mongodb-query

我有这样的数据:

{"_id"=>BSON::ObjectId('560b5c5d80ec9700030035dc'), "active"=>true, "user_id"=>nil, "action"=>"connection", "shop_id"=>245929, "gold_id"=>23452349, "indexed"=>true, "created_at"=>2015-09-30 03:51:57 UTC}

我正在尝试获取前一天的第一个和最后一个gold_id。我每天都要获得10_000个日志。

我正在使用红宝石驱动程序

  first_gold_in = Time.utc(Date.today.year, Date.today.month, (Date.today.day - 1), 00, 00)
  first_gold_out = yesterday_o_clock + 5*60
  first_gold_id = logs
    .find("action" => "connection", "created_at" => {"$gte" => first_gold_in, "$lte" => first_gold_out} )
    .first
    .fetch("gold_id")

  last_gold_in = Time.utc(Date.today.year, Date.today.month, (Date.today.day - 1), 23, 55)
  last_gold_out = yesterday_o_clock + 5*60 - 1
  last_gold_id = logs
    .find("action" => "connection", "created_at" => {"$gte" => last_gold_in, "$lte" => last_gold_out} )
    .first
    .fetch("gold_id")

但即使日期范围较短,它也很慢。有没有更好的方法呢? 也可以在同一个请求中获取当天的第一天和最后一天吗?

由于

0 个答案:

没有答案