Mongo :: Error :: OperationFailure,InvalidBulkOperation,BulkWriteError,将JSON文档插入MongoDB时

时间:2016-07-24 05:57:58

标签: ruby json mongodb

我正在编写一个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)

我怎么能传递这些错误?

提前谢谢。

0 个答案:

没有答案