0

1 つのコレクションに埋め込みオブジェクトを追加しました。オブジェクトは次のように表示されます

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

"menuList" を"name":"new"にプッシュする BasicDBObject クエリを作成しました。これは正常に完了しました。次に、menuList1 を menuList に追加します。

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

menuList内にmenuList1をプッシュしてmenuListを更新するBasicDBObject クエリを作成するにはどうすればよいですか?

4

1 に答える 1

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);
于 2012-10-04T12:02:34.043 に答える