在具有以下结构的 130k 元素的集合中:
{
"tags": ["restaurant", "john doe"]
}
有 40k 个带有“restaurant”标签的文档,但只有 2 个带有“john doe”标签。所以接下来的查询是不同的:
// 0.100 seconds (40.000 objects scanned)
{"tags": {$all: [/^restaurant/, /^john doe/]}}
// 0.004 seconds (2 objects scanned)
{"tags": {$all: [/^john doe/, /^restaurant/]}}
有没有办法优化查询而不对客户端中的标签进行排序?我现在能想象的唯一方法是将不太频繁的标签放在搜索数组的开头。