0

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"}
4

1 に答える 1

1

更新: 解決策

 id = @coll.insert({"#{abc}"})

必要に応じて以下の出力を生成します

 {"_id"=>BSON::ObjectId('517bfc79b244110a08000001'), "command" : "runlocal", "remotecommand" : "rm process_2013-04-25.log"}
于 2013-05-01T23:50:16.627 に答える