> We have been using Mongo for over a year now and everything has been great
> with it. It works perfectly for our dynamic objects and it has been easy to
> maintain. The problem that we are running into now is with reporting. We
> basically need to provide reports across our entire system to our users. My
> thought was to use something like Redis in front of mongo to cache the user
> information for these reports, but now I am stuck on the sorting for this
> information. If we were to denormalize the data, we would have user
> information copied across 20-30 collections. That just sounds like a
> nightmare to maintain and keep up-to-date. Pulling the data out into our
> application and sorting that way could potentially lead to performance
> issues due to the amount of data that could possible be returned over a
> year and the amount of users accessing reports at that time. So here is
> what I'm trying to solved.
> user collection
> {firstName:'John', lastName:'Smith', id:'123abc'}
> {firstName:'Andy', lastName:'Smith', id:'123def'}
> report collection 1 (assume millions of records and many more fields)
> {someCount:34, someScore, 23, userId:'123abc'}
> {someCount:1 someScore, 12, userId:'123def'}
> report collection 2 (assume millions of records and many more fields)
> {someCount:1 someScore, 12, userId:'123abc'}
> {someCount:1 someScore, 12, userId:'123def'}
> and so on
> Let's say I want to put data from report collection 2 into jqGrid. How can
> I sort that information on the user's first name/last name.
> Andy Smith 1 12
> John Smith 1 12
> At this point it's looking like we need to, at the very least, move our
> user information and reporting data to a relational database. I would
> rather not maintain two databases, however. Thoughts?