Исключение при хранении большого BasicDBObject в mongodb с Java - PullRequest
1 голос
/ 11 марта 2011

Я хочу хранить большие объекты в mongoDB, но я получаю ошибки при сохранении больших объектов (byte [] может быть> 5MB). Можно ли хранить данные таким образом? Я всегда получаю исключение "java.lang.IllegalArgumentException: объект слишком большой: 4821537" при вызове "insert" в БД ...

Отрывок:

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;
}

StackTrace:

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)

Спасибо за вашу помощь / советы:)

1 Ответ

2 голосов
/ 11 марта 2011

Я думаю, что ваша версия mongodb - 1.6。BBSON объекты в MongoDB имеют ограниченный размер (4 МБ). UpgradeПожалуйста, обновите версию mongodb до 1.7+. 16 МБ в v1.7 / 1.8, более высокие лимиты в будущем。

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...