gpt4 book ai didi

MongoDB Atlas - $search 与 $match

转载 作者:行者123 更新时间:2023-12-05 03:44:16 46 4
gpt4 key购买 nike

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

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

我希望搜索“模糊”,并且 this answer说这应该使用正则表达式来完成,但我在 Atlas Search 文档中找不到有关 $regex 运算符的任何引用。对于之前的任务,我创建了一个聚合管道,其中我将 $match 运算符与 db.collection.aggregate() 结合使用。在我看来,$match 运算符也应该适用于模糊搜索栏,因为它允许我使用 $regex 运算符。我相信 $match 还可以利用您可能在 Atlas 上为查询创建的任何索引。

所以我的问题基本上是这样的 - 使用 $search$match 有什么区别?一个是否比另一个提供性能/成本优势?还是它们用于我完全缺少的不同用例?如果使用 $search 是可行的方法,那么如何使查询变得模糊?如果有任何帮助,我将不胜感激。

最佳答案

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

在您完成实现过程中,这里是 docs .

这是一个带有模糊匹配的简单查询,使用默认的模糊设置:

{
$search: {
"index": <index name>, // optional, defaults to "default"
"text": {
"query": "queryText",
"path": "<fields-to-search>",
"fuzzy": {
"maxEdits": 2
}
}
}
}

关于MongoDB Atlas - $search 与 $match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66556615/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com