MongoDB: Как хранить большие массивы?(ERR документ слишком большой: этот документ BSON ограничен 16777216 байтами) - PullRequest
2 голосов
/ 14 февраля 2012

Я храню большие массивы друзей и подписчиков из твиттера в MongoDB.Я удивлен, что достиг предела в 16 МБ, но я думаю, это понятно, если я собираю пользователей с / 2M подписчиками.Есть ли что-нибудь вокруг этого?

Я занимаюсь проектом по социальному анализу и часто просматриваю эти массивы.

Ниже приведена моя ошибка:

...in `serialize': Document too large: This BSON documents is limited to 16777216 bytes. (BSON::InvalidDocument)

Также, используя драгоценный камень Mongo Ruby, Ruby-ответом будет pref:)

1 Ответ

1 голос
/ 14 февраля 2012

Это не будет работать так, как вы хотели бы. MongoDB допускает некоторую денормализацию, но вы не можете денормализовать элементы 2M в одного родителя, как вы видели с проблемами пространства.

В SQL вы бы реализовали это как две таблицы. Вы можете реализовать это как две коллекции с MongoDB. Это может показаться неоптимальным, но представляет одинаковый общий объем работы в MongoDB или SQL.

Тем не менее, MongoDB может не быть "NoSQL" БД, которую вы ищете. Графовые базы данных, такие как Neo4J, предназначены для анализа сильно связанных данных. Кроме того, Redis поддерживает списки без ограничения размера, так что это также может быть лучше подойдет.

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