sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu importovat data do Mongodb ze souboru Json pomocí javy

Předpokládejme, že můžete číst řetězec JSON. Například si přečtete první text JSON

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

a přiřadit ji k proměnné (String json1), dalším krokem je analyzovat ji,

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

vložte vše dbo do seznamu,

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

poté je uložte do databáze:

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

EDIT:

V nejnovější verzi MongoDB musíte místo DBObject použít Documents a metody pro přidání objektu nyní vypadají jinak. Zde je aktualizovaný příklad:

Importy jsou:

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

Kód by chtěl toto (s odkazem na text nad ÚPRAVOU):

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

můžete to udělat také způsobem se seznamem. ale pak potřebujete

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

Ale myslím, že s tímto řešením je problém. Když napíšete:

db.collection.find()

v mongo shell získat všechny objekty v kolekci, výsledek vypadá následovně:

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

což není úplně stejné jako předtím.



  1. Vložení Date() do Mongodb přes mongo shell

  2. Přehled možností zálohování MongoDB

  3. Jak upsert s mongodb-java-driver

  4. Redis se neaktualizuje při mnoha žádostech najednou