MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann ich Daten aus einer JSON-Datei mit Java in Mongodb importieren?

Angenommen, Sie können die JSON-Zeichenfolge entsprechend lesen. Sie lesen beispielsweise den ersten JSON-Text

{ "test_id" : 1245362, "name" : "ganesh", "age" : "28", "Job" : 
   {"company name" : "company1", "designation" : "SSE" } 
}

und weisen Sie es einer Variablen (String json1) zu. Der nächste Schritt besteht darin, es zu analysieren,

DBObject dbo = (DBObject) com.mongodb.util.JSON.parse(json1);

setzen Sie alle dbo in eine Liste,

List<DBObject> list = new ArrayList<>();
list.add(dbo);

dann speichern Sie sie in der Datenbank:

new MongoClient().getDB("test").getCollection("collection").insert(list);

BEARBEITEN:

In der neuesten MongoDB-Version müssen Sie Documents anstelle von DBObject verwenden, und die Methoden zum Hinzufügen des Objekts sehen jetzt anders aus. Hier ist ein aktualisiertes Beispiel:

Importe sind:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

Der Code möchte dies (unter Bezugnahme auf den Text über dem EDIT):

Document doc = Document.parse(json1);
new MongoClient().getDataBase("db").getCollection("collection").insertOne(doc);

Du kannst es auch so mit der Liste machen. aber dann brauchst du

new MongoClient().getDataBase("db").getCollection("collection").insertMany(list);

Aber ich denke, es gibt ein Problem mit dieser Lösung. Wenn Sie Folgendes eingeben:

db.collection.find()

in der Mongo-Shell, um alle Objekte in der Sammlung zu erhalten, sieht das Ergebnis wie folgt aus:

{ "_id" : ObjectId("56a0d2ddbc7c512984be5d97"),
    "test_id" : 1245362, "name" : "ganesh", "age" : "28", "Job" :
        { "company name" : "company1", "designation" : "SSE" 
    }
}

das ist nicht genau dasselbe wie vorher.