首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB地图集- $search v/s $match

问MongoDB地图集- $search v/s $match
EN

Stack Overflow用户
提问于 2021-03-10 08:18:49
回答 1查看 464关注 0票数 1

我正在使用Node和MongoDB地图集构建一个web应用程序。我需要实现一个搜索栏,它将用于在2个特定字段中搜索MongoDB集合。我正在做一些关于构建这个的最佳方法的研究,但是Mongo文档有点令人困惑。

These docs for Atlas Search提到了$search聚合阶段。另一方面,these docs for MongoDB Aggregation Stages根本没有提到$search阶段。

我希望搜索是“模糊的”,this answer说这应该使用正则表达式来完成,但我在$regex搜索文档中找不到任何关于模糊操作符的引用。对于前一个任务,我创建了一个聚合管道,在其中我使用了带有db.collection.aggregate()的$match操作符。在我看来,由于允许我使用$regex操作符,$match操作符对于模糊搜索栏也应该可以很好地工作。我相信$match还可以利用您在Atlas上创建的任何索引来进行查询。

所以我的问题基本上是这样的--使用$search和$match有什么区别?其中一种是否比另一种提供性能/成本优势?或者它们适用于不同的用例,而我完全忽略了这些用例?如果使用$search是可行的,那么如何使查询变得模糊呢?如果有任何帮助,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-10 08:34:01

$search是实现搜索功能的最佳选择。它将产生更准确的结果,它将提供突出显示和自动完成等功能,并且在此用例中性能更好。

在您完成整个实现过程中,下面是docs。

下面是一个具有模糊匹配的简单查询的外观,其中包含模糊设置的默认值:

代码语言:javascript
复制
{
  $search: {
    "index": <index name>, // optional, defaults to "default"
    "text": {
      "query": "queryText",
      "path": "<fields-to-search>",
      "fuzzy": {
         "maxEdits": 2
       }
    }
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66556615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档