更新(递增)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"