ike*_*8me 4 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);
BasicDBObject incValue = new BasicDBObject("damage", 1); // or "items.damage" ???
BasicDBObject intModifier = new BasicDBObject("$inc", incValue);
badgesCollection.update(query, intModifier, false, false, WriteConcern.SAFE);
}
Run Code Online (Sandbox Code Playgroud)
问题:我是指"损坏"还是"items.damage"?
都不是.如果要仅使用匹配来增加数组元素的damage值,则需要使用位置运算符来向运算符标识该元素.所以这是:itemssubDocID$ $inc
"items.$.damage"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7584 次 |
| 最近记录: |