0
我正在寫一個ruby(v.2.3.0)腳本來將JSON文件導入MongoDB(v。3.0.8)。我嘗試了三種方法將JSON哈希插入到MongoDB的其中一個集合中,但所有嘗試都出錯。當將JSON文檔插入到MongoDB中時,Mongo :: Error :: OperationFailure,InvalidBulkOperation,BulkWriteError
1)
代碼:
coll = db.collections(my_collection)
coll.insert_one(json_hash)
錯誤:
$oid is not valid for storage. (52) (Mongo::Error::OperationFailure)
2)剛使用insert_many
,代替insert_one
。
代碼:
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)正如我所看到的這兩個錯誤,我認爲這個問題是與。因此,我從JSON文件中的密鑰值"_id"
中刪除了。
代碼:
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"]
後,我得到了
錯誤:
Mongo::Error::BulkWriteError (Mongo::Error::BulkWriteError)
我怎麼可能通過這些錯誤?
預先感謝您。
insert_many接收數組,這就是你得到一個錯誤 – Machinerium