Java 在MongoDB中更新(递增)子文档中的值

Java 在MongoDB中更新(递增)子文档中的值,java,mongodb,nosql,Java,Mongodb,Nosql,如果我有一个包含文档和子文档的MongoDB集合,如图所示: 并且,如果我想在每次调用该方法时将“损害”增加1: private final static void incrementCount(String docID, String subDocID) { BasicDBObject query = new BasicDBObject(); query.put("_id", docID); query.put("items.id", subDocID); B

如果我有一个包含文档和子文档的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);
}

问题:我指的是“损坏”还是“物品损坏”?

都不是。如果您想使用匹配的
子文档ID
仅增加
数组元素的
损坏
值,则需要使用
$
$inc
操作符标识该元素。所以它是:

"items.$.damage"

物品。损坏
是正确的选择。所有内容都取自文档的根目录