ruby mongo ドライバーを使用して mongodb にハッシュを挿入しようとしています。私は得るundefined method has_key? error
以下はコードです
require 'rubygems'
require 'mongo'
include Mongo
@client = MongoClient.new('localhost', 27017)
@db = @client['sample-db']
@coll = @db['test1']
@coll.remove
puts abc
#value of abc hash is {:command=>"runlocal", :remotecommand=>"rm process_2013-04-25.log"}
@coll.insert("#{abc}")
出力は次のようになります
{ "_id" : ObjectId("5174c4aeb2441139ec000001"), "command" : "runlocal", "remotecommand" : "rm......" }
フォーラムを見た後、私は以下のような解決策を見つけました。しかし、スキーマを変更したくありません。
id = @coll.insert({:status =>"#{abc}"})
生産する
{ "_id" : ObjectId("517b69d2b2441136b8000001"), "status" : "{'command' => "runlocal"....
更新: 解決策
id = @coll.insert({"#{abc}"})
必要に応じて以下の出力を生成します
{"_id"=>BSON::ObjectId('517bfc79b244110a08000001'), "command" : "runlocal", "remotecommand" : "rm process_2013-04-25.log"}