问题标签 [mongodb-atlas-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
755 浏览

mongodb - Atlas搜索对象数组

我有以下架构:

我如何索引phones.number,以便我可以编写如下内容:

这里的文档给出了一个字符串数组的例子,而不是一个对象数组。

0 投票
1 回答
73 浏览

mongodb - 指令不敏感的Mongodb Atlas Search

我正在使用 MongoDB Atlas Search 在 Collection 中执行搜索,为此我创建了 Atlas Search Index:

这是我的聚合:

我的收藏中有以下文件:

问题:当我搜索Ingocnitaa返回 0 结果的协议时。

我的搜索索引有什么问题吗?我想要一个带有突出显示的指令不敏感搜索。

0 投票
1 回答
268 浏览

mongodb - MongoDB Atlas 搜索自动完成索引错误评分

我有一个 MongoDB Atlas Search 索引,其字段名称和以下属性具有自动完成类型:

该集合包含以下名称:

使用此自动完成查询:

我可以使用以下 searchScore 检索上述所有名称:

即使The America是完全匹配的,它也会得到较低的分数。

为什么完全匹配的 searchScore 低于其他?

0 投票
1 回答
42 浏览

mongodb-atlas - 在 Atlas Search 的不同字段中查找完整术语

我正在尝试使用 Atlas 搜索来搜索名称。在我的数据集中,名称分为名字和姓氏,这对我来说是个问题。

我在聚合中尝试了以下阶段:

即使我有一个 FirstName = "John" 和 LastName = "Doe" 的文档,也找不到任何结果。如果我搜索 John 或 Doe,我会得到这个结果。我也尝试使用 $text 而不是 Phrase,即使我在进行该搜索时得到 John Doe,我也会得到任何其他具有 FirstName = John 或 LastName = Doe 的文档,所以我得到的点击次数比我多得多想。

所以基本上我希望我的搜索返回“John Doe”、“John William Doe”,而不是“Frank Doe”或“John Williams”。

我真的不想为此在数据库中引入一个新字段来组合名字和姓氏,所以希望有人对此有一个很好的解决方案!

0 投票
1 回答
284 浏览

mongodb - 带有搜索自动完成索引的猫鼬

我想在 MongoDB Atlas 上的集合中的名称字段上进行自动完成搜索。我在 MongoDB atlas 中配置了一个搜索索引,如下所示:

我正在尝试通过猫鼬搜索整个集合中的子字符串,如下所示:

我总是得到 0 个结果,有没有人可以帮助我理解我做错了什么?

谢谢, 埃雷兹

0 投票
2 回答
741 浏览

node.js - 使用 mongodb 过滤的自动完成功能

我想对名称执行自动补全,但使用 mongoose 和 nodejs 在特定城市进行过滤。我有一个这样的 mongodb 集合:

到目前为止我做了什么:

我已经使用搜索索引(在搜索文档的帮助下)设置了 MongoDB Atlas,并像这样设置了自动完成功能:

在前端,使用autocompleteJs

到目前为止,它运作良好。但我不知道如何根据城市过滤自动完成结果。似乎文档没有提到这一点。你有任何线索。

0 投票
1 回答
462 浏览

mongodb - 子文档数组上的 Atlas 搜索自动完成

尝试为文档中的子文档数组定义索引时,我在使用自动完成图集搜索数据类型时遇到了一些问题。

我的集合中文档的数据结构如下所示:

当我定义用于搜索entries数组的字符串索引时,它按预期工作并且我得到了合乎逻辑的结果。这是我使用 lucene.keyword 分析器的索引定义:

但是,当我使用自动完成类型尝试相同的操作时,我得到一个空结果,但没有错误。这是我定义自动完成的方式:

Atlas Search 的文档说明如下: 自动完成类型不能用于索引其值为字符串数组的字段。所以要么这句话要改成说各种数组,要么我这里做错了。有人可以澄清这是否可能吗?提前致谢

0 投票
1 回答
310 浏览

javascript - 在 MongoDB Atlas Search 中搜索多个查询/路径

我正在尝试创建一个 api,它将返回匹配多个参数的搜索结果。我现在可以很好地查询一个参数。

这是一个示例网址

http://localhost:3000/api/search?term=javascript&impact=sdg1

我希望结果包括 term=javascript 和 Impact=sdg1

这是可能的吗?任何人都可以建议编写正确的查询类型吗?

提前谢谢了

0 投票
1 回答
164 浏览

javascript - 对象散布在新数组内

我有一个 Node.js 程序,它使用 Mongo Atlas 搜索索引并利用 MongoDB 驱动程序中的 Aggregate 函数。为了进行搜索,用户将在 URL 的查询参数中传递搜索查询。话虽如此,我正在尝试根据查询参数是否存在来构建搜索对象。为了构建搜索对象,我目前正在使用对象扩展语法和参数短路,如下所示:

这是一个缩短的版本,因为有更多的参数,但你会开玩笑。

在 MongoDB 搜索查询中,如果您有多个必须满足特定条件的参数,则它们必须包含在名为 must 的数组中,如下所示:

因此,为了包含我的搜索参数,我必须首先mustObj使用我的对象数组Object.keys并将它们映射到一个数组,然后将搜索“必须”数组分配给我创建的数组,如下所示:

我想要做的是,而不是创建mustObj然后循环整个事物来创建一个数组,而是使用我在创建对象时使用的扩展语法和简短的方法来创建数组。

我已经尝试了以下代码,但无济于事。我收到“对象不可迭代”错误:

总而言之,我的问题是,我要问的甚至可能吗?如果是这样,怎么办?

0 投票
1 回答
670 浏览

mongodb - MongoDB Atlas - $search v/s $match

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

Atlas Search 的这些文档提到了$search聚合阶段。另一方面,MongoDB 聚合阶段的这些文档根本没有提到$search阶段。

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

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