我想在mongoDB中存储大对象但是在持久化大对象时我遇到错误(byte []可能> 5MB)。是否可以以这种方式存储数据?在DB上调用“insert”时,我总是得到一个异常“java.lang.IllegalArgumentException:object too big:4821537”...
段:
private byte[] persistObject(String id, byte[] value){
BasicDBObject doc = new BasicDBObject();
doc.append("id", id);
doc.append("value", value); // may be really huge! > 5MB of size
try {
getObjectCollection().save(doc);
} catch (MongoException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
堆栈跟踪:
java.lang.IllegalArgumentException: object too big: 4821537
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:217)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:180)
at com.mongodb.DBCollection.insert(DBCollection.java:72)
at com.mongodb.DBCollection.save(DBCollection.java:537)
at com.mongodb.DBCollection.save(DBCollection.java:517)
感谢您的帮助/提示:)
答案 0 :(得分:2)
我认为你的mongodb版本是1.6.MongoDB中的BSON对象大小有限(4MB)。请将mongodb版本升级到1.7+。 v1.7 / 1.8中16MB,未来更高限制。