sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik gegevens naar Mongodb importeren vanuit het Json-bestand met behulp van java

Stel dat u respectievelijk de JSON-tekenreeks kunt lezen. U leest bijvoorbeeld de eerste JSON-tekst

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

en wijs het toe aan een variabele (String json1), de volgende stap is om het te ontleden,

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

zet alle dbo in een lijst,

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

sla ze vervolgens op in de database:

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

BEWERKEN:

In de nieuwste MongoDB-versie moet u Documenten gebruiken in plaats van DBObject, en de methoden voor het toevoegen van het object zien er nu anders uit. Hier is een bijgewerkt voorbeeld:

Invoer is:

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

De code wil dit (verwijzend naar de tekst boven de EDIT):

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

je kunt het ook op de manier doen met de lijst. maar dan moet je

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

Maar ik denk dat er een probleem is met deze oplossing. Wanneer u typt:

db.collection.find()

in de mongo-shell om alle objecten in de verzameling te krijgen, ziet het resultaat er als volgt uit:

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

wat niet precies hetzelfde is als voorheen.



  1. Hoe zoek je naar gebruikers op zowel voor- als achternaam met MongoDB?

  2. Hoe verplaats ik een redis-database van de ene server naar de andere?

  3. Schema en subdocs in mongoose.js

  4. Knooppunt voegt grote gegevens in met mangoest