Ruby on rails 3 未插入Mongodb长查询数据
在插入查询方面,我们面临着一个非常奇怪的问题,它在本地mongodb上运行良好,但它在MongoHQ上导致了问题 当插入查询中的数据稍长时,Rails、Mongo Id查询、MongoHq返回true,但实际上不会插入数据,在以下情况下会记录以下查询 失败案例:Ruby on rails 3 未插入Mongodb长查询数据,ruby-on-rails-3,mongodb,ruby-on-rails-3.2,mongoid,mongohq,Ruby On Rails 3,Mongodb,Ruby On Rails 3.2,Mongoid,Mongohq,在插入查询方面,我们面临着一个非常奇怪的问题,它在本地mongodb上运行良好,但它在MongoHQ上导致了问题 当插入查询中的数据稍长时,Rails、Mongo Id查询、MongoHq返回true,但实际上不会插入数据,在以下情况下会记录以下查询 失败案例: Dev-Stats['gm_metrics'].insert([ {"_id"=>BSON::ObjectId('50c01eccb4e36b0002000003'), "metric_name"=>2, "coun
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}
])
我们的Rails查询,从中生成上述mongodb查询
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}])
对于上述情况,它证实了当查询长度很长时,它不会被插入到数据库中,但当我们尝试用较少的参数和较短的值插入时,我们总是成功的。请指导我们如何修复它。尝试使用safe:true选项(我对ruby了解不多,但它会给您足够的洞察力)插入它失败的原因