执行时汇总搜索功能错误

问题描述

我显然不了解猫鼬的聚合功能。我正在尝试查询productCode字段并返回所有产品。下面的代码返回错误

Product.aggregate(...)。search不是函数

在这里做错了什么?我在用猫鼬。

products = await Product.aggregate().search({
    text: {
      query: 'text_supplied',path: 'productCode'
    }
  });

更新日期

查询中的文本来自输入字段。我想返回产品集合中包含我从输入字段传递的文本的所有文档。这是为了在客户端自动完成下拉菜单。例如。

来自输入字段的文本:“ 1”;

Mongodb集合:Products

[
  {
    productCode: '1A'
  },{
    productCode: 'C1'
  },{
    productCode: 'C2'
  }
];

在这种情况下,我想返回每个包含“ 1”的产品。在那里返回“ 1A”和“ C1”

解决方法

图集搜索聚合阶段仅添加到版本5.10.0的猫鼬中。

专长(汇总):为Atlas文本搜索#9115添加汇总#search()

不管您发布的用例如何,您都不希望使用text,而是希望进行regex搜索:

Product.aggregate([
   {
      "$search": {
         "regex": {
            "path": "productCode","query": ".*1.*"
         }
      }
   }
])

我可以进一步解释,但这不是原始问题,但是我建议您阅读analyzers的更多内容,因为它们在索引和查询中的作用都至关重要。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...