2013-03-12 15 views
14

Chcę utworzyć następujący schemat dokumentu w MongoDB za pomocą sterownika javaJak dodać tablicę do dokumentu MongoDB za pomocą Java?

{ 
    "_id": { 
    "$oid": "513e9820c5d0d8b93228d7e8" 
    }, 
    "suitename": "testsuite_name", 
    "testname": "testcase_name", 
    "milestones": [ 
    { 
     "milestone_id": "359", 
     "testplans": [ 
     { 
      "pland_id": "965", 
      "runs": [ 
      6985, 
      5896 
      ] 
     }, 
     { 
      "plan_id": "984", 
      "runs": [ 
      9856, 
      3684 
      ] 
     } 
     ] 
    } 
    ] 
} 

Mam następujący kod

BasicDBObject testObject = new BasicDBObject(); 
BasicDBObject milestoneObject = new BasicDBObject(); 

testObject.put("suitename", testsuite); 
testObject.put("testname", testcase); 
testObject.put("milestones", new BasicDBObject("milestone_id", "2333")); 
locations.insert(testObject); 

Ale to nie jest generowanie kamień milowy w postaci tablicy. Jak mogę dodać kamień milowy jako tablicę? I obecnie uzyskać za pomocą mojego kodu

{ 
    "_id": { 
    "$oid": "513f93dac5d0e2439d34308e" 
    }, 
    "suitename": "test_deployment_disable_client.TestDeploymentDisableClient", 
    "testname": "test_deployment_disable_client", 
    "milestones": { 
    "milestone_id": "2333" 
    } 
} 

Odpowiedz

34

Zmień na coś takiego:

testObject.put("suitename", testsuite); 
testObject.put("testname", testcase);   
List<BasicDBObject> milestones = new ArrayList<>(); 
milestones.add(new BasicDBObject("milestone_id", "2333")); 
testObject.put("milestones", milestones); 
locations.insert(testObject); 
+0

działa świetnie. Dzięki za szybką odpowiedź – user2162796

+0

Tak, to działa i powinno być oznaczone jako odpowiedź, aby zamknąć pytanie. –

+0

Dziękuję @orid !! – jjmartinez

3

można utworzyć ArrayList, który trwa w DBObjects.

Dodaj utworzony obiekt DBObject dla obiektu wewnątrz tablicy i dodaj go do utworzonego obiektu tablicy.

array.add(/* some object */); 

Wreszcie, umieść tablicę w głównym dokumencie.

document.put("milestones", array); 
0

Lepsze wykorzystanie:

MongoClient client = new MongoClient("localhost",27017); 

MongoCollection<Document> collection =  client.getDatabase("db").getCollection("collection"); 

List<Document> docs=new ArrayList<>(); 
docs.add(); 

collection.insertMany(docs); 

client.close(); 
Powiązane problemy