sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan kan jeg importere data til Mongodb fra Json-fil ved hjælp af java

Antag, at du kan læse henholdsvis JSON-strengen. For eksempel læser du den første JSON-tekst

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

og tildele den til en variabel (String json1), næste trin er at parse den,

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

læg alle dbo på en liste,

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

gem dem derefter i databasen:

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

EDIT:

I den nyeste MongoDB-version skal du bruge Documents i stedet for DBObject, og metoderne til at tilføje objektet ser anderledes ud nu. Her er et opdateret eksempel:

Importen er:

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

Koden vil gerne have dette (der henviser til teksten over EDIT):

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

du kan også gøre det på den måde med listen. men så skal du

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

Men jeg tror, ​​der er et problem med denne løsning. Når du skriver:

db.collection.find()

i mongo-skallen for at få alle genstande i samlingen, ser resultatet således ud:

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

hvilket ikke er helt det samme som før.



  1. MongoDB $setEquals

  2. Sådan får du Mongo-data ved hjælp af samlet MongoDB version 3.0

  3. Hvordan kan konvertere streng til dato med mongo-aggregation?

  4. Hvordan importerer man Mongodb ObjectId fra CSV-fil ved hjælp af mongoimport?