Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将mongo json文档反序列化为ruby_Ruby_Serialization_Mongodb_Deserialization - Fatal编程技术网

将mongo json文档反序列化为ruby

将mongo json文档反序列化为ruby,ruby,serialization,mongodb,deserialization,Ruby,Serialization,Mongodb,Deserialization,我正在编写一个脚本,用于读取mongo oplog并将记录复制到sql表。我面临的问题是我无法从mongo完全获得对ruby的反序列化 例如,这是来自oplog的bson记录 ... "o" : {"interval":{"start":"tue 21 2011","end":"wed 22 2011"}} 现在我能做到了 doc["o"]["interval"] 我得到 starttue 21 2011 endwed 22 2011 但如果我这样做了 doc["o"]["interval

我正在编写一个脚本,用于读取mongo oplog并将记录复制到sql表。我面临的问题是我无法从mongo完全获得对ruby的反序列化

例如,这是来自oplog的bson记录

... "o" : {"interval":{"start":"tue 21 2011","end":"wed 22 2011"}}
现在我能做到了

doc["o"]["interval"]
我得到

starttue 21 2011 endwed 22 2011
但如果我这样做了

doc["o"]["interval"]["start"] or doc["o"]["interval"]["end"]
我得到一个错误,因为

mongo_reader.rb:48:in `ReadCollection': undefined method `[]' for nil:NilClass (NoMethodError)
那么如何访问集合的内部元素呢

#<BSON::OrderedHash:0x23103e4 { 
  "ts" => #<BSON::Timestamp:0x4620708 @increment=2, @seconds=1320984261>, 
  "op" => "u", 
  "ns" => "devices.d4d8ff6cb092541a5746eafd3.colletio", 
  "o2" => #<BSON::OrderedHash:0x2310300 {
              "_id" => BSON::ObjectId('4ebc9ebd0925ec7cc70d273f')
          }>,
  "o" => #<BSON::OrderedHash:0x231027c {
             "$set" => #<BSON::OrderedHash:0x2310240 {
                 "interval" =>
                     #<BSON::OrderedHash:0x2310210 {
                         "start" => Fri Nov 11 04:04:13 UTC 2011, 
                         "end" => Fri Nov 11 04:04:16 UTC 2011
                     }>, 
                 "classification" => 
                     #<BSON::OrderedHash:0x2310180 {
                         "activity" => "Handling",
                         "entity" => "Workpiece", 
                         "isPlanned" => true, 
                         "confidence" => 0, 
                         "source" => "4ebbf18a0925ec7cc6ebdb78"
                     }>,
                 "parts" => nil
             }>
         }>
}>
##,
“op”=>“u”,
“ns”=>“设备.d4d8ff6cb092541a5746eafd3.集合”,
“o2”=>#BSON::ObjectId('4ebc9ebd0925ec7cc70d273f')
}>,
“o”=>##
#2011年11月11日星期五04:04:13 UTC,
“结束”=>2011年11月11日星期五04:04:16 UTC
}>, 
“分类”=>
#“处理”,
“实体”=>“工件”,
“isPlanned”=>正确,
“信心”=>0,
“源”=>“4ebbf18a0925ec7cc6ebdb78”
}>,
“零件”=>零
}>
}>
}>

是的,文档正在按预期的方式发布,我已更新文档。检查输出,请检查它,如果需要更改im访问内容的方式,请告诉我,那里似乎有额外的间接级别;
$set
属性。好的,谢谢。键我可以解决这个问题