Java+;MongoDB:更新文档数量中的字段
我试图立即更新文档数量中的字段,我想修改Java+;MongoDB:更新文档数量中的字段,java,mongodb,Java,Mongodb,我试图立即更新文档数量中的字段,我想修改 “download=0”其中列表中有“md5”。当我运行代码时,它会抛出一个异常: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) 这就是我正在做的: //the list is an list of "md5" List<BasicDBObject> updateCon
“download=0”
其中列表中有“md5”
。当我运行代码时,它会抛出一个异常:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
这就是我正在做的:
//the list is an list of "md5"
List<BasicDBObject> updateCondition=new ArrayList< BasicDBObject>(list.size());
for(int i = 0 ; i < list.size(); i++) {
updateCondition.get(i).put("md5", list.get(i));
DBObject updatedValue=new BasicDBObject();
updatedValue.put("download", 0);
DBObject updateSetValue=new BasicDBObject("$set",updatedValue);
vt_col.update(updateCondition.get(i), updateSetValue);
}
我需要您的帮助,谢谢您的帮助。调试将在这里对您有很大帮助,我不能100%准确地说,但我认为您的updateCondition可能是空的 您正在尝试访问updateCondition(0)。。。但您只需通过以下方式创建它:
new ArrayList< BasicDBObject>(list.size());
newarraylist(list.size());
引发异常的原因是列表中仍然没有任何对象,首先必须将列表复制到updateCondition列表
希望有帮助。这个答案是正确的。为了详细说明发生这种情况的原因:构造函数
ArrayList(int initialCapacity)
不会创建包含initialCapacity
项的列表,它会为initialCapacity
项创建一个带有保留内存的空列表。Settng集合的保留容量是一种纯粹的性能优化,但不涉及其行为。
new ArrayList< BasicDBObject>(list.size());