sql >> データベース >  >> NoSQL >> MongoDB

Javaを使用してJsonファイルからMongodbにデータをインポートするにはどうすればよいですか?

    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バージョンでは、DBObjectの代わりにDocumentsを使用する必要があり、オブジェクトを追加する方法が異なって見えるようになりました。更新された例は次のとおりです:

    インポートは次のとおりです:

    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シェルでは、結果は次のようになります。

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

    これは以前とまったく同じではありません。



    1. AsyncとMongoDbを使用して、コレクションドキュメントを順番に入力します

    2. ハッシュフィールドに対するMongoidクエリ

    3. nodeJSを使用してgridFSに保存されたファイルをダウンロードする方法

    4. Meteorコレクションにmomentjsオブジェクトを挿入する