在 PHP 中有以下查询:
$where = array(
"subs.{$pid}.opt" => $subsType,
"partner.{$pid}.lts" => array(
'$exists' => true
)
);
所以,在我的例子中,“subs”和“partner”的子键可以是一些符号($pid),在不同的条件下不同!
我发现,这样的查询很慢,因为我的集合中有很多数据。
我试图通过创建索引来解决这个问题:
- “subs”+“partner”的复合索引
- “subs.$.opt”+“partner.$.lts”上的复合索引
- 另外,尝试在该字段上创建单个索引...
但是,这些尝试都没有成功(我确实“解释”了我的查询,并看到在所有情况下都没有使用索引)。
所以,我的问题是:我做错了什么?是否有可能在动态更改的键上创建索引?还是我应该考虑改变我保存数据的方式?(数据结构)
最好的祝愿!