MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как мога да импортирам данни в Mongodb от Json файл с помощта на java

Да предположим, че можете да прочетете JSON низа съответно. Например четете първия JSON текст

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

и го присвоете на променлива (String json1), следващата стъпка е да го анализирате,

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

сложи всичкиdbo в списък,

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

след това ги запишете в база данни:

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

РЕДАКТИРАНЕ:

В най-новата версия на MongoDB трябва да използвате Documents вместо DBObject и методите за добавяне на обекта сега изглеждат различно. Ето един актуализиран пример:

Импортираните са:

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

Кодът би искал това (позовавайки се на текста над РЕДАКТИРАНЕТО):

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

можете да го направите и по начина със списъка. но тогава трябва

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

Но мисля, че има проблем с това решение. Когато пишете:

db.collection.find()

в mongo shell, за да получите всички обекти в колекцията, резултатът изглежда по следния начин:

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

което не е точно същото като преди.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo няма функция max(), как да заобиколя това?

  2. Раздвоен процес:Повреда по време на доставка на гнездо:Счупена тръба

  3. Може ли MongoDB да бъде пакетиран в приложение Electron?

  4. Бързо пейджиране с MongoDB

  5. pullAll, докато премахвате вградени обекти