MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como posso importar dados para o Mongodb do arquivo Json usando java


Suponha que você possa ler a string JSON respectivamente. Por exemplo, você lê o primeiro texto JSON
{ "test_id" : 1245362, "name" : "ganesh", "age" : "28", "Job" : 
   {"company name" : "company1", "designation" : "SSE" } 
}

e atribuí-lo a uma variável (String json1), o próximo passo é analisá-lo,
DBObject dbo = (DBObject) com.mongodb.util.JSON.parse(json1);

coloque todos os dbo em uma lista,
List<DBObject> list = new ArrayList<>();
list.add(dbo);

em seguida, salve-os no banco de dados:
new MongoClient().getDB("test").getCollection("collection").insert(list);

EDITAR:

Na versão mais recente do MongoDB, você precisa usar Documents em vez de DBObject, e os métodos para adicionar o objeto parecem diferentes agora. Aqui está um exemplo atualizado:

As importações são:
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

O código ficaria assim (referindo-se ao texto acima do EDIT):
Document doc = Document.parse(json1);
new MongoClient().getDataBase("db").getCollection("collection").insertOne(doc);

você também pode fazê-lo da maneira com a lista. mas então você precisa
new MongoClient().getDataBase("db").getCollection("collection").insertMany(list);

Mas acho que há um problema com esta solução. Quando você digita:
db.collection.find()

no shell do mongo para obter todos os objetos da coleção, o resultado se parece com o seguinte:
{ "_id" : ObjectId("56a0d2ddbc7c512984be5d97"),
    "test_id" : 1245362, "name" : "ganesh", "age" : "28", "Job" :
        { "company name" : "company1", "designation" : "SSE" 
    }
}

que não é exatamente o mesmo que antes.