Я относительно новичок в MongoDB, и до сих пор я действительно впечатлен. Однако я борюсь с лучшим способом настройки своих хранилищ документов. Я пытаюсь сделать некоторую сводную аналитику, используя данные твиттера, и я не уверен, следует ли помещать твиты в пользовательский документ или сохранять их как отдельную коллекцию. Похоже, что размещение твитов внутри пользовательской модели быстро превысит предел размера. Если это так, то как можно запустить MapReduce для группы твитов пользователя?
Я надеюсь, что я не слишком расплывчат, но я не хочу слишком конкретизировать и слишком далеко идти по неправильному пути в отношении настройки моей модели предметной области.
Поскольку я уверен, что вам всем наскучило слушать, я привык к земле RDB, где я выложил бы свою схему как
| USER |
--------
|ID
|Name
|Etc.
|TWEET__|
---------
|ID
|UserID
|Etc
Кажется, что логическая схема в Mongo будет
User
|-Tweet (0..3000)
|-Entities
|-Hashtags (0..10+)
|-urls (0..5)
|-user_mentions (0..12)
|-GeoData (0..20)
|-somegroupID
но не будет ли это быстро раздувать пользовательский документ сверх емкости. Но я хотел бы провести анализ твитов, принадлежащих пользователям с похожим somegroupID. Концептуально имеет смысл компоновка модели, как указано выше, но в какой момент это слишком громоздко? И каковы жизнеспособные альтернативы?