ソーシャルゲームのアプリにMongoDBを使っていて困った点 1. joinがないため、マスタデータの参照が多いページのレスポンスが遅い 2. 複数collectionにまたがって更新が必要な場合に、ShutDown,バグ等により中途半端にコレクションを更新して、データの不整合が発生することがある。 3.集計関数には、MapReduceを使う必要があるが、リアルタイムで行うには負荷が重い。 4. Mongoidがレースコンディションに弱い。 a.条件を指定した更新ができない。 b. incとpushを同時に行うとようなAtomicな操作を行えない。 c. HashやArrayに対して、pushではなく、全体をセットしてしまう。 上記の弱点は、1作目で発覚したため、2作目以降は下記の対応を行った。 1.に関しては、マスターデータをMongoDBに格納するのではなく、Hash形式にしてAmaz
