私は高度に正規化されたデータモデルを持っています。_id
現在、最も深いコレクションから詳細を取得するために、 を保存して順次クエリを実行することにより、手動参照を使用しています。
参照は一方向で、フローには約 5 ~ 6 個のコレクションがあります。ある特定の使用例では、上位レベルのコレクションから後続の「_id」を照会して、最も深いコレクションまで照会する必要があります。技術的には、実行するたびにデータベースにアクセスしています
db.collection_name.find(_id: ****).
私の主な目標は、他のコレクションの原子性に大きな影響を与えずに読み取りを最適化することです。非正規化について読んだことがありますが、カーディナリティを変更するオプションを維持したいので、別のコレクションを完全に維持したいので、意味がありません。
私は当初、MapReduce を使用して後方から集計を行い、主に特定のユース ケース用のコレクションを作成することを考えていました。しかし、それでもそれほど良い音ではありません。
リレーショナル データベースでは、クエリをサブクエリに分割し、結合を実行して、最初の結果と交差するデータ セットを取得します。mongodb は結合をサポートしていないため、何かを理解するのに苦労しています。
以前にこのような問題に直面したことがある場合、または解決方法を知っている場合は、助けてください。