2012-10-04 60 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);