在MongoDb中使用运算符$all优化数组查询匹配

在MongoDb中使用运算符$all优化数组查询匹配,mongodb,optimization,nosql,Mongodb,Optimization,Nosql,在具有以下结构的130k元素集合中: { "tags": ["restaurant", "john doe"] } 有4万份文件带有“餐厅”标签,但只有2份文件带有“john doe”。因此,接下来的查询是不同的: // 0.100 seconds (40.000 objects scanned) {"tags": {$all: [/^restaurant/, /^john doe/]}} // 0.004 seconds (2 objects scanned) {"tags": {$a

在具有以下结构的130k元素集合中:

{
  "tags": ["restaurant", "john doe"]
}
有4万份文件带有“餐厅”标签,但只有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/]}}

有没有一种方法可以在不排序客户机中的标记的情况下优化查询?我现在能想象的唯一方法是在搜索数组的开头添加不太频繁的标记。

我在mongodb团队JIRA中找到了一个请求功能:


我实现了一个Statistic系统,在数组的末尾放置具有更多细节的标记。

我在mongodb团队JIRA中发现了一个请求功能:

我实现了一个静态系统,在数组的末尾放置具有更多细节的标记