PHP で次のクエリを実行します。
$where = array(
"subs.{$pid}.opt" => $subsType,
"partner.{$pid}.lts" => array(
'$exists' => true
)
);
したがって、私の場合、「subs」と「partner」のサブキーは、条件によって異なるいくつかのシンボル ($pid) にすることができます!
私のコレクションには多くのデータがあるため、そのようなクエリは遅いことがわかりました。
インデックスを作成して修正しようとしました:
- 「subs」+「partner」の複合インデックス
- 「subs.$.opt」+「partner.$.lts」の複合インデックス
- また、そのフィールドに単一のインデックスを作成しようとしました...
しかし、これらの試みはどちらも成功しませんでした(クエリで「説明」を行ったところ、すべての場合にインデックスが使用されていないことがわかりました)。
だから、私の質問:私は何を間違っていますか?動的に変更されるキーにインデックスを作成する可能性はありますか? または、データを保持する方法を変更することを検討する必要がありますか? (データ構造)
幸運をお祈りしています!