MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment puis-je importer des données dans Mongodb à partir d'un fichier Json en utilisant Java

Supposons que vous puissiez lire la chaîne JSON respectivement. Par exemple, vous lisez le premier texte JSON

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

et l'affecter à une variable (String json1), l'étape suivante consiste à l'analyser,

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

mettre tout dbo dans une liste,

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

puis enregistrez-les dans la base de données :

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

MODIFIER :

Dans la dernière version de MongoDB, vous devez utiliser Documents au lieu de DBObject, et les méthodes d'ajout de l'objet semblent différentes maintenant. Voici un exemple mis à jour :

Les importations sont :

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

Le code aimerait ceci (en se référant au texte au-dessus de l'EDIT):

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

vous pouvez également le faire de la même manière avec la liste. mais alors vous avez besoin

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

Mais je pense qu'il y a un problème avec cette solution. Lorsque vous tapez :

db.collection.find()

dans le shell mongo pour obtenir tous les objets de la collection, le résultat ressemble à ceci :

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

ce qui n'est pas exactement le même qu'avant.