2013-03-12 6 views
14

Je veux créer le schéma de document suivant dans MongoDB en utilisant le pilote javaComment ajouter un tableau à un document MongoDB en utilisant 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 
      ] 
     } 
     ] 
    } 
    ] 
} 

Je le code suivant

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); 

Mais ce ne génère pas de jalon comme un tableau. Comment puis-je ajouter un jalon en tant que tableau? Je reçois actuellement ce en utilisant mon code

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

Répondre

34

changement à quelque chose comme ceci:

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

fonctionne très bien. Merci pour la réponse rapide – user2162796

+0

Oui, cela fonctionne et il devrait être marqué comme la réponse à la fin de la question. –

+0

Merci @orid !! – jjmartinez

3

Vous pouvez créer un ArrayList qui prend en DBObjects. Ajoutez le DBObject créé pour l'objet dans le tableau et ajoutez-le à l'objet de tableau créé.

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

Enfin, placez le tableau dans l'objet document principal.

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

meilleure utilisation:

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(); 
Questions connexes