私は何百万ものレコードの膨大なコレクションを持っています。データを取得するために使用される 4 つのフィールドがあります。たとえばf1, f2, f3
、フィルタリングやf4
データの並べ替えに使用されます。3 種類のクエリがあります。
1) filter by f1 AND f2, and sort by f4
2) filter by f1 AND f2 AND f3, and sort by f4
3) filter by f1 AND f2 AND few additional fields, and sort by f4
したがって、並べ替えは常に f4 で行われます。最初の 2 種類のクエリが主に使用されます。ケース 3 の追加フィールドは、コレクション内の任意のフィールド (検索機能) である可能性があるため、インデックス作成には使用しません。
私の提案は、構成された唯一のキー(f1, f2, f3, f4)
が最良の解決策かもしれないということですが、私はmongoDbの経験がほとんどないので、皆さんに尋ねることにしました.