2012-10-04 88 views
0

我在一个集合中添加了一个嵌入对象。出现在对象如下如何在另一个嵌入对象(已经嵌入的对象)中创建嵌入对象的查询?

{ "_id" : ObjectId("506d3046a4e89e856eace0cc"), 
    "name": "new" 
    "menuList":[{ 
     "name":"dssdfDS", 
     "des":"dsfsdf", 
     "_id" : ObjectId("506d3046a4d89e856eace0cc") 
    }] 
} 

我创建BasicDBObject查询“菜单列表”推到“名”:“新”,我已经成功地做到了这一点,现在我想追加menuList1到菜单列表。

{ "_id" : ObjectId("506d3046a4e89e856eace0cc"), 
    "name": "new" 
    "menuList":[{ 
     "name":"dssdfDS", 
     "des":"dsfsdf", 
     "_id" : ObjectId("506d3046a4d89e856eace0cc") 
     "menuList1":[{ 
      "name":"dssdfDS", 
      "des":"dsfsdf", 
      "_id" : ObjectId("506d3046a4d89e856eace0cc") 
     }] 
    }] 
} 

我如何做一个BasicDBObject查询menuList1菜单列表更新菜单列表

+0

感谢编辑.. – user1705980

回答

0

下面的查询做的伎俩

BasicDBObject query= new BasicDBObject("_id", ObjectId("506d3046a4e89e856eace0cc")); 
    query.append("menuList._id", ObjectId("506d3046a4d89e856eace0cc")); 

    BasicDBObject update = new BasicDBObject(); 
    update.append("menuList.$.menuList1", menuList1Objects); 

    BasicDBObject updateCommand = new BasicDBObject("$push", update); 

    db.collection.update(query,updateCommand);