Java 在MongoDB中更新(递增)子文档中的值
如果我有一个包含文档和子文档的MongoDB集合,如图所示: 并且,如果我想在每次调用该方法时将“损害”增加1: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
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"
物品。损坏
是正确的选择。所有内容都取自文档的根目录