在MongoDB$匹配块中使用$文本搜索时,顺序是否重要?
我正在执行一个聚合查询,其中包含一个匹配、组、项目,然后是一个排序管道。我想知道在我的匹配块中首先添加文本搜索块与最后添加文本搜索块是否会产生性能差异。我目前正在基于机器人3T响应时间指标进行测试,没有注意到差异,我想确认我的观察是否符合事实 查询如下所示:在MongoDB$匹配块中使用$文本搜索时,顺序是否重要?,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我正在执行一个聚合查询,其中包含一个匹配、组、项目,然后是一个排序管道。我想知道在我的匹配块中首先添加文本搜索块与最后添加文本搜索块是否会产生性能差异。我目前正在基于机器人3T响应时间指标进行测试,没有注意到差异,我想确认我的观察是否符合事实 查询如下所示: db.COLLECTION.aggregate( {$match: {$text:{$search: 'xyz'},...}}, {$group: {...}}, {$project: {...}}, {$sort: {...}} ) .
db.COLLECTION.aggregate(
{$match: {$text:{$search: 'xyz'},...}},
{$group: {...}},
{$project: {...}},
{$sort: {...}}
)
.我知道这就是为什么match出现在group和Projects之前的原因。那么,问题是什么?我在问match块中的内容是否可以按任何顺序写入,或者顺序是否重要。例如,文本搜索首先出现,然后是其他条件,而其他条件是书面条件,然后是文本搜索。在后一种情况下,它会根据其他条件过滤出集合,然后根据过滤后的列表进行文本搜索,还是MongoDB会优化
$match
管道的内部工作方式,而不管查询的顺序如何?您的问题的答案在下面的帖子中:。