Techioz Blog

RubyからmongoDBへのJSON

概要

私は Ruby と mongo の初心者です。 YAML ファイルから JSON を生成する Ruby スクリプトを開発しました。この JSON を MongoDB に送信するにはどうすればよいですか?

私は以下から始めました:

require "mongo"
client = Mongo::Client.new(['localhost:27017'])
database = Mongo::Database.new(client,'test')
collection = Mongo::Collection.new(database,test)
collection.create()

JSON ファイルをコレクションに挿入したい場合は、次のようにします。

collection.insert(ActiveSupport::JSON.decode(my_json_files)

しかし、mongoDBを見るとコレクション結果が空であるため、それは機能しません。

解決策

Ruby を使用して JSON データを MongoDB データベースに挿入するには、スクリプトですでに必要になっている MongoDB Ruby ドライバーを使用する必要があります。ただし、コードは少し間違っています。従う必要がある手順は次のとおりです。

まず、MongoDB Ruby ドライバーがインストールされていることを確認してください。まだインストールしていない場合は、次のコマンドを使用してインストールできます。

require 'mongo'
client = Mongo::Client.new(['localhost:27017'], :database => 'test')

次に、JSON データを MongoDB コレクションに挿入する前に、Ruby ハッシュ オブジェクトに変換する必要があります。 JSON.parse メソッドはこれに使用できます。

require 'json'
my_hash = JSON.parse(my_json_files)

これで、MongoDB コレクションにデータを挿入する準備が整いました。コレクションの insert_one メソッドまたは insert_many メソッドを使用して、それぞれ 1 つまたは複数のドキュメントを挿入できます。

client[:test].insert_one(my_hash)

これにより、ハッシュ オブジェクトが「test」データベースの「test」コレクションに挿入されます。コレクションが存在しない場合は、自動的に作成されます。