我正在编写一个ruby(v.2.3.0)脚本来将JSON文件导入MongoDB(v.3.0.8)。我尝试了三种方法将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_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)正如我看到这两个错误,我认为问题出在"$oid"
。因此,我从JSON文件中密钥为"$oid"
的值中删除了"_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)
我怎么能传递这些错误?
提前谢谢。