【问题标题】:Use other aggregate operators before search搜索前使用其他聚合运算符
【发布时间】:2022-01-19 10:51:14
【问题描述】:

我一直在探索 Atlas 搜索并使用其索引对数据进行搜索,但在管道中使用“$search”运算符之前,我想在此之前使用过滤器来缩小数据范围。但是 MongoDB 不允许这样做。在使用 $search 缩小数据范围并提高性能之前,有什么方法可以使用 $match 或任何其他运算符

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    所以答案是否定的,正如docs中所指定的:

    $search 必须是它出现在的任何管道的第一阶段

    原因是$search 必须使用“特殊”文本索引atlas search 构建,一旦您将结果加载到内存中,它就不能再使用了。

    不幸的是,您没有可以使用的解决方法或“hack”,我建议您考虑一下为什么需要这种用法,因为这听起来有点反模式。

    【讨论】:

    • 感谢您的澄清。我为我的用例找到了一个小解决方法。在搜索而不是使用文本运算符时,我使用复合运算符并在其中使用过滤器和文本。
    猜你喜欢
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多