在MongoDb中使用运算符$all优化数组查询匹配
在具有以下结构的130k元素集合中:在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
{
"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中发现了一个请求功能: 我实现了一个静态系统,在数组的末尾放置具有更多细节的标记