Ich schreibe ein Ruby (v. 2.3.0) -Skript, um JSON-Datei in MongoDB (v. 3.0.8) zu importieren. Ich habe versucht, drei Möglichkeiten, JSON-Hash in eine der Sammlungen in MongoDB einzufügen, aber alle Versuche haben Fehler.Mongo :: Fehler :: OperationFailure, InvalidBulkOperation, BulkWriteError, beim Einfügen von JSON-Dokument in MongoDB
1)
Code:
coll = db.collections(my_collection)
coll.insert_one(json_hash)
Fehler:
$oid is not valid for storage. (52) (Mongo::Error::OperationFailure)
2) Nur insert_many
verwendet, statt insert_one
.
Code:
coll = db.collections(my_collection)
coll.insert_many(json_hash)
Fehler:
Invalid document format for bulk insert_one operation: ["_id", {"$oid"=>"5786e89f536a733ef63c58e0"}]. (Mongo::Error::InvalidBulkOperation)
3) Als ich diese beiden Fehler gesehen habe, dachte ich, das Problem mit war. So entfernte ich von dem Wert, der der Schlüssel "_id"
in der JSON-Datei ist.
Code:
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
jedoch nach dem Versuch ["_id", "5786e89f536a733ef63c58e0"]
einzufügen, ich habe
Fehler:
Mongo::Error::BulkWriteError (Mongo::Error::BulkWriteError)
Wie könnte ich diese Fehler passieren?
Vielen Dank im Voraus.
insert_many erhalten ein Array, so erhalten Sie einen Fehler – Machinerium