JSONファイルをMongoDBにインポートするためのRuby(v。2.3.0)スクリプトを作成しています(v。3.0.8)。 MongoDBのコレクションの1つにJSONハッシュを挿入する3つの方法を試しましたが、すべての試みにエラーがあります。Mongo :: Error :: OperationFailure、InvalidBulkOperation、BulkWriteError、JSON文書をMongoDBに挿入するとき
1)
コード:
coll = db.collections(my_collection)
coll.insert_one(json_hash)
エラー:
$oid is not valid for storage. (52) (Mongo::Error::OperationFailure)
2)だけではなく、insert_one
の、insert_many
を使用。
コード:
coll = db.collections(my_collection)
coll.insert_many(json_hash)
エラー:
Invalid document format for bulk insert_one operation: ["_id", {"$oid"=>"5786e89f536a733ef63c58e0"}]. (Mongo::Error::InvalidBulkOperation)
3)私は、これら2つのエラーを見てきたように、私はこの問題は、と思いました。そこで、を、JSONファイルのキーが"_id"
であるという値から削除しました。
コード:
Mongo::Error::BulkWriteError (Mongo::Error::BulkWriteError)
がどのように私はこれらのエラーを渡すことができます。
new_hash = {}
object.each do |obj|
obj.each do |key, value|
if key == "_id"
value = value["$oid"]
end
new_hash.store(key, value.to_s)
end
end
はしかし、["_id", "5786e89f536a733ef63c58e0"]
を挿入しようとした後、私は
エラーを得ましたか。
ありがとうございます。
insert_manyは配列を受け取るため、エラーが発生します – Machinerium