新しいRailsアプリにインポートしたいmongodbバックアップからのデータがたくさんあります(mongoを使用して開発していましたが、現在はactiverecordに切り替えています)。
私は明白なことを試しましたBSON.deserialize(doc)
が、最初のレコードのみを返します。私が間違っていることはありますか?BSON ファイルを JSON または MySQL に取り込める別の使用可能な形式に変換する簡単な方法はありますか?
編集:まあ、これは最善の方法ではありませんが、確かに...しかし、ルビーシェルスクリプトを使用してそれらを変換することができました(bsondump
mongodbの一部を利用しています)。
#!/usr/bin/env ruby
bson_files = Dir['./*.bson']
bson_files.each do |file|
tmp_file_name = file+".tmp"
new_file_name = file+".json"
system("bsondump "+file+" > "+tmp_file_name)
file = File.open(tmp_file_name)
contents = []
file.each {|line| contents << line }
contents = "["+contents[0..-2].join.gsub(/}\n/,"},\n")[0..-3].gsub(/ObjectId\( (.{26}) \)/,"\\1").gsub(/Date\( ([0-9]*) \)/,"\\1")+"]"
out = File.open(new_file_name, 'w')
out.write(contents)
end
より良い解決策はまだ高く評価されています。