java - How to add document in existing nested documents dynamically in mongodb -


i have following structure

{   "name": "abc",   "lname": "xyz",   "data": {     "1": {       "info": {         "test": "test"       },       "info1": {         "test": "test"       }     }   } } 

now want add following object in 'data' object

 "2": {       "info": {         "test": "test1"       },       "info1": {         "test": "test1"       }     } 

how in mongodb using mongodb java driver?

in mongodb shell can below :

db.collection.update( {_id:id} , { $set: { "data.2":    {  "info": {"test": "test1" }, "info1": {"test": "test1"}   }  }}); 

in java driver :

dbobject query = new basicdbobject("_id", "123");  dbobject update = new basicdbobject();  dbobject info = new basicdbobject("test","test1"); update.put("$set", new basicdbobject("data.2", new basicdbobject("info",info).append("info1",info));   collection.update(query, update); 

Comments