0
votes

I am having mongo document as below

  "_id" : ObjectId("5072b33aa4e8dd3e359b8e94"), 
  "menus" : { 
    "5072b8dda4e8dd3e359b8ea8" :
     { 
        "_id" : ObjectId("5072b8dda4e8dd3e359b8ea8"), 
        "description" : "hfghfgh",
         "MenuItems" : 
            [   
                {   
                "name" : "dfgdfg",  
                "description" : "dgdfgd", 
                "_id" : ObjectId("5072b91ba4e8dd3e359b8eaa")
                 },     
                { 
                "name" : "fgdfgdf",     
                "description" : "gdfgg",
                 "_id" : ObjectId("5072bb92a4e8204e51de1084") 
                }
            ]
    }
}

Actually i had tried to delete the following object in the menuItems

    { 
    "name" : "fgdfgdf",     
    "description" : "gdfgg",
    "_id" : ObjectId("5072bb92a4e8204e51de1084") 
    }

My query as follows but its not working.

 BasicDBObject query=new BasicDBObject("_id",objectId("...");

  BasicDBObject document = new     BasicDBObject("menus.5072b8dda4e8dd3e359b8ea8.menuItems.$._id", ObjectId("5072bb92a4e8204e51de1084") );
  BasicDBObject updateOps=new BasicDBObject("$pull", document);

I am having id of menuItems "_id" : ObjectId("5072bb92a4e8204e51de1084") , id of menus "_id" : ObjectId("5072b8dda4e8dd3e359b8ea8") and id of top level document "_id" : ObjectId("5072b33aa4e8dd3e359b8e94"),

1
Your question doesn't make sense. Please try to be more clear else there are good chances that your question gets closed - Pradeep Simha

1 Answers

0
votes
 BasicDBObject query=new BasicDBObject("_id",new ObjectId(".....");

BasicDBObject document = new BasicDBObject("menus.5072b8dda4e8dd3e359b8ea8.menuItems",
new  BasicDBObject("_id":ObjectId("5072bb92a4e8204e51de1084") );

BasicDBObject updateOps=new BasicDBObject("$pull", document);

 db.collection.update(query,updateOps);