当我硬编码值5并更新数组第3个元素时,这很好用:
BasicDBObject setDoc = new BasicDBObject();
setDoc.append("array.3.view_counter", 5);
但是,当我尝试使用$inc
更新view_counter而不是以下面的方式对其进行硬编码时 - 我从java驱动程序中获得com.mongodb.MongoException: not okForStorage Exception
。
setDoc.append("array.3.view_counter", new BasicDBObject().append("$inc", new BasicDBObject().append("view_counter",1)))
我无法弄清楚我做错了什么。任何帮助或线索都非常感谢。
谢谢
答案 0 :(得分:1)
$inc
需要位于对象的顶层,如:
setDoc.append("$inc", new BasicDBObject("array.3.view_counter", 1));