考えられる回避策について説明する前に、MongoDBが選択された理由を強調したいと思います。 並列配列のインデックス作成にこの制限を適用します。 MongoDBで配列にインデックスを付けると、配列要素ごとに1つのキーを持つマルチキーインデックスが作成されます。したがって、2つの配列に複合インデックスを作成する場合(1つはM個の異なる値を持ち、もう1つはN個の異なる値を持つ)、インデックスには基本的にMNキーがあります。これは非常に悪いことです-個別の配列要素の数が非線形です。配列要素を追加または削除するときは、このようなインデックスを維持するために必要な作業量を考慮してください。
OK、正当化はさておき、この制限を回避するには、インデックスの共通部分をサポートする現在のMongoDBバージョン(2.6)を使用すると便利です。 CustomerInformations
にインデックスを作成できます およびVehicleLicenseDisks
次に、MongoDBは両方のインデックスを使用し、それらを交差させて、両方に制限のあるクエリを提供できます。
何らかの理由でMongoDB<2.6に固執している場合は、スキーマの再設計を検討するか、最大で1つの配列フィールドを使用するインデックスに依存するかを選択できます。