更新(递增)MongoDB中子文档中的值
如果我有一个包含文档和子文档的MongoDB集合,如图所示:
并且,如果我想在每次调用方法时将“损坏”增加1:
private final static void incrementCount(String docID, String subDocID) { BasicDBObject query = new BasicDBObject(); query.put("_id", docID); query.put("items.id", subDocID); BasicDBObject incValue = new BasicDBObject("damage", 1); // or "items.damage" ??? BasicDBObject intModifier = new BasicDBObject("$inc", incValue); badgesCollection.update(query, intModifier, false, false, WriteConcern.SAFE); }
问题:我是指“损坏”还是“items.damage”?
都不是。 如果要仅使用匹配的subDocID
增加items
数组元素的damage
值,则需要使用$
positional运算符来向$inc
运算符标识该元素。 所以这是:
"items.$.damage"