【问题标题】:Mongodb Long Query data is not being insertedMongodb Long Query数据没有被插入
【发布时间】:2012-12-07 14:45:05
【问题描述】:

我们在插入查询时遇到了一个非常奇怪的问题,它在本地 mongodb 上运行良好,但在 MongoHQ 上却导致了问题。

插入查询中数据有点长时,Rails、Mongo Id查询、MongoHq返回true但实际上数据不会插入,以下情况会记录以下查询。

失败案例:

Dev-Stats['gm_metrics'].insert([
    {"_id"=>BSON::ObjectId('50c01eccb4e36b0002000003'), "metric_name"=>2, "count"=>1, "parameters"=>[{"param"=>"user_id",  "value"=>"4f0be09cc8c1950001000001"}, {"param"=>"created_at", "value"=>"2012-12-06 04:27:56 +0000"}, {"param"=>"game_id", "value"=>"4e8d712aa510cb0001000002"}],  "updated_at"=>2012-12-06 04:27:56 UTC, "created_at"=>2012-12-06 04:27:56 UTC}
])

生成上述 mongodb 查询的 Rails 查询

GmMetric.with(:safe=>false).create({:metric_name=>2, :count=>1,:parameters => [{"param"=>"user_id", "value"=>"4f0be09cc8c1950001000001"},{"param"=>"created_at", :value=>"#{Time.now}"},{"param"=>"game_id", :value1=>"4e8d712aa510cb0001000002"}]})

Dev-Stats['gm_metrics'].insert([{"_id"=>BSON::ObjectId('50c01eccb4e36b0002000003'), "metric_name"=>2, "count"=>1, "parameters"=>[{"param"=>"user_id", "value"=>"123456"}, {"param"=>"created_at", "value"=>"2012-12-06 04:27:56 +0000"}, {"param"=>"game_id", "value"=>"123456"},{"param"=>"game_id", "value"=>"123456"}], "updated_at"=>2012-12-06 04:28:56 UTC, "created_at"=>2012-12-06 04:28:56 UTC}])

成功案例

Dev-Stats['gm_metrics'].insert([{"_id"=>BSON::ObjectId('50c01eccb4e36b0002000003'), "metric_name"=>2, "count"=>1, "parameters"=>[{"param"=>"user_id", "value"=>"4f0be09cc8c1950001000001"}, {"param"=>"created_at", "value"=>"2012-12-06 04:27:56 +0000"}, {"param"=>"game_id", "value"=>"123456"}], "updated_at"=>2012-12-06 04:28:56 UTC, "created_at"=>2012-12-06 04:28:56 UTC}])

Dev-Stats['gm_metrics'].insert([{"_id"=>BSON::ObjectId('50c01eccb4e36b0002000003'), "metric_name"=>2, "count"=>1, "parameters"=>[{"param"=>"user_id", "value"=>"4f0be09cc8c1950001000001"}, {"param"=>"created_at", "value"=>"4f0be09cc8c1950001000001"}], "updated_at"=>2012-12-06 04:28:56 UTC, "created_at"=>2012-12-06 04:28:56 UTC}])

对于上述情况,它确认当查询长度很长时它不会被插入到数据库中,但是当我们尝试使用更少的参数和短值插入时,我们总是会成功。请指导我们如何解决它。

【问题讨论】:

    标签: ruby-on-rails-3 mongodb ruby-on-rails-3.2 mongoid mongohq


    【解决方案1】:

    尝试使用 safe:true 选项插入失败的原因(对 ruby​​ 的了解不多,但它会给你足够的洞察力)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2020-12-04
      相关资源
      最近更新 更多