执行时汇总搜索功能错误

时间:2020-09-30 04:04:49

标签: mongodb mongoose mongodb-atlas-search

我显然不了解猫鼬的聚合功能。我正在尝试查询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”

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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