[英]MongoDB - MongoJack find and remove
我對MongoDB和MongoJack完全陌生。
我有這個叫pbf
收藏
{
"_id" : ObjectId("541ea72044ae1b4043e9ccba"),
"name" : "First civ game",
"type" : "WAW",
"numOfPlayers" : 4,
"active" : true,
"players" : [ ],
"civs" : [
{
"objectType" : "civ",
"name" : "Indians",
"used" : false,
"hidden" : true
},
{
"objectType" : "civ",
"name" : "Arabs",
"used" : false,
"hidden" : true
},
{
"objectType" : "civ",
"name" : "Japanese",
"used" : false,
"hidden" : true
},
{
"objectType" : "civ",
"name" : "Egyptians",
"used" : false,
"hidden" : true
},
}
我要做什么“通過ID刪除並返回一個文明項目”
我已經嘗試過這樣的事情:
protected static JacksonDBCollection<PBF, String> pbfCollection;
BasicDBObject field = new BasicDBObject();
field.put("civs", 1);
field.put("_id", "541ea72044ae1b4043e9ccba");
PBF pbf = pbfCollection.findAndRemove(field)
但這只是拋出異常,說什么也沒找到
所以基本上我希望這個返回
{
"objectType" : "civ",
"name" : "Indians",
"used" : false,
"hidden" : true
}
我該怎么做?
我用兩個步驟解決了它。 我相信盡管有更好的方法。
//First get, then remove, then update
PBF pbf = pbfCollection.findOneById(pbfId);
Civ civ = pbf.getCivs().remove(0);
pbfCollection.updateById(pbf.getId(), pbf);
這可行,但是我認為這應該是更好的方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.