问题标签 [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.
mongodb - “来自 mongot :: 的远程错误是由 :: \"path\" 引起的(来自 \"wildcard\")” - mongodb Atlas 搜索中的错误(Java 驱动程序)
尝试使用 mongodb Java 驱动程序执行 MongoDB Atlas Search查询时,我得到以下信息,我使用的是 java 驱动程序 4.1。
在代码片段之后,它是从 mogodb atlas 控制台本身生成的。
知道是什么原因吗?
mongodb - MongoDB Atlas Search - 搜索字符串中带有“和”条件的多个术语(不是“或”)
在 MongoDB Atlas 搜索的文档中,它为autocomplete
操作员说明了以下内容:
查询:要搜索的字符串或字符串。如果字符串中有多个词条,Atlas Search 还会分别为字符串中的每个词条寻找匹配项。
对于text
运营商来说,同样的事情也适用:
查询:要搜索的一个或多个字符串。如果字符串中有多个词条,Atlas Search 还会分别为字符串中的每个词条寻找匹配项。
分别匹配每个术语对我来说似乎很奇怪。我们需要在我们的应用程序中进行多次搜索,对于每一次,我们希望您输入的单词越多,结果就越少,而不是更多。
示例:在搜索“John Doe”时,我只希望结果同时包含“John”和“Doe”。目前,我得到与“John”或“Doe”匹配的结果。
使用 MongoDB Atlas Search 是不可能的,还是我做错了什么?
更新 目前,我已经通过在空格('')上拆分搜索词并将每个单独的关键字添加到单独的 must-sub 子句(使用复合运算符)来解决它。但是,如果有一个关键字只有一个字符,则搜索查询将不再返回任何结果。考虑到这一点,我将一个字符的关键字与多个字符的关键字分开。下面的代码片段有效,但为此我需要在每个文档上保存两个生成的字段:
- searchString:连接所有可搜索字段的字符串。Fe "John Doe Man Streetstreet Citycity"
- searchArray:将上面的字符串大写并在空格('')上分割成一个数组
更新 2 - 意外行为的完整示例
使用以下文档创建集合:
在此集合上创建搜索索引“默认”:
执行以下查询:
当用户搜索“John Doe”时,此查询将返回路径“searchString”中包含“John”或“Doe”的所有文档。在此示例中,这意味着所有 3 个文档。用户输入的单词越多,返回的结果就越多。这不是预期的行为。我希望更多的词匹配更少的结果,因为搜索词变得更精确。
java - Mongodb Atlas“连接到集群时出现套接字异常”
我正在使用 Java & Springboot 和 MongoDB Atlas 并创建了一个响应许多对象的 CURD 的数据库
当我在 uploadingImage 上发布帖子时,出现此错误Got Socket exception on Connection [connectionId{localValue:4, serverValue:114406}] to cluster0-shard-00-02.1c6kg.mongodb.net:27017
但是,当我调用其他对象的 CRUD 时,它工作得很好。我不为什么它会引发这个异常。顺便说一句,当未连接到 MongoDB Atlas 时,我对所有对象的所有 CRUD 操作在 localhost 上运行良好,这意味着我的 ImageDAO 应该没问题,我只是使用了mongoTemplate.insert(Image)
.
我在网上搜索,他们说可能是 Atlas 的 IP 白名单,所以我将我的集群设置为对任何 IP 地址开放。
我还在我的 .properties 文件中设置了我的超时和套接字配置:spring.data.mongodb.uri=mongodb+srv://username:password@cluster0.1c6kg.mongodb.net/database?retryWrites=true&w=majority&keepAlive=真&pooSize=30&autoReconnect=真&socketTimeoutMS=361000000&connectTimeoutMS=3600000
它仍然不起作用,我认为问题肯定与套接字超时有关,但我不知道我还能在哪里配置
mongodb - Mongodb 多语言搜索:哪种模式更适合更快的搜索结果 - 嵌套或直接具有特定于语言的字段
我们正在使用 Atlas 搜索索引对产品进行模糊搜索,而对于查询,我们正在使用 Mongoose。我们想要的搜索类型包括多语言搜索,为此我们为产品使用以下模式 -
考虑到搜索性能,上述模式是否非常合适,因为读取数据会有数千或更多的点击。展望未来,搜索查询可能会达到数百万,因为它是一个电子商务系统。具有嵌套结构将有利于查询,或者我们可以选择其他选项,
- 使用为语言指定的简写直接具有特定于语言的字段:
- 具有以字段名称作为键嵌套的语言特定字段
将语言作为嵌套在该对象中的键和字段名称:
或者任何其他适合这种情况的模式?
搜索将根据用户选择的语言进行。因此,如果用户选择法语作为他的首选语言,我们将查找用户以法语输入的关键字。
PS - 除了名称和描述之外,还有更多的字段,它们也是特定于语言的。
node.js - 为什么第一次连接/请求到 MongoDB Atlas 数据库需要这么长时间?
我使用 React、Nodejs 和 Mongodb 作为数据库创建了一个 webapp。我现在正在利用免费的 MongoDB Atlas 数据库,所以我在那里创建了一个帐户和一个数据库,然后我将它与我的节点/快递服务器连接起来。
我的应用程序运行良好,我能够注册/登录用户并获取数据等。但是,第一个请求总是需要很长时间才能完成。我现在在 Heroku 上免费部署了该应用程序。当我打开应用程序并尝试登录时,第一个请求大约需要 20 秒才能完成并登录用户。在那之后,一切都运行得又好又快,所以这真的只是第一次开始。
由于我的应用程序正在运行,我不知道这里有什么问题。我唯一的猜测是这个问题特定于 MongoDB Atlas 和他们的免费数据库。
这是我用来连接数据库的代码,它非常简单:
database - 当我使用 MongoDB Atlas Search 时,如何处理本地 MongoDB 数据库中的查询?
我在看MongoDB Atlas Search
。它似乎只在MongoDB Atlas Cloud
.
出于开发目的,当我在本地环境中运行应用程序并使用本地 MongoDB 服务器时,这些Atlas Search
查询将如何工作?
我发现2个低效的解决方案。
- 我放了一个标志来确定应用程序是在
dev
环境中还是在production
环境中。但这不是一个理想的解决方案。 - 每个开发人员都应该将 a
MongoDB Atlas Free Tier
用于开发目的。
在开发环境中是否有更好的方法MongoDB Atlas Search
?
database - MongoDB云中的Atlas搜索过滤器可以用于日期之间的查询吗?
我在网上阅读的所有示例似乎都是指使用指南针或命令行,而不是 MongoDB 云。我尝试在搜索过滤器中模拟相同的查询代码,但没有任何运气。
例如样本集合..
如何过滤 saleDate 以显示 2014 年的对象?
mongodb - 在 MongoDB 的聚合管道中获取不同的文档
我正在尝试在 Atlas 文本搜索和 Mongodb 中的匹配之间进行联合,然后在添加其他阶段之前从那些中获得不同的结果。我很接近,但我想我在这里错过了一步。这就是我现在所在的地方。
} ])
这工作正常。如果搜索或匹配找到一个文档,它将被添加到聚合函数中的文档中。问题是如果在两者中都找到了该文档,那么它会在此处出现两次。
我发现没有合适的方法来添加一种在此处获取不同文档列表的方法。看来我们应该使用 $group,它几乎完成了我想要它做的事情。
我在 $unionWith 阶段之后添加了以下阶段:
这最终删除了重复项,但我现在陷入了一个结果,即我的文件不是原来的样子。现在他们看起来像{ _id: <distinctId>, doc: { all fields from document} }
基本上我希望最后一步给我每个组的第一个文档,但不包含在新的 JSON 对象中。
mongodb - MongoDB Atlas:如何将副本集成员转换为主要成员
这份文档,https ://docs.mongodb.com/manual/tutorial/force-member-to-be-primary 说,可以通过赋予它更高的 members[n].priority 值来强制副本集成员成为主要成员比集合中的任何其他成员。它适用于 MongoDB。我们使用 MongoDB Atlas。它也适用于 MongoDB Atlas 吗?
mongodb - 如何在 Parse Server 中使用 Atlas Search 高亮显示?
我正在使用带有 MongoDB Atlas 的解析服务器。我实现了一个 v3 索引(不区分变音符号),它工作正常。
在下一步中,我想突出显示搜索结果中的文本。这是我想要实现的 mondodb 文章: https ://docs.atlas.mongodb.com/reference/atlas-search/highlighting
但是在解析服务器中,我没有找到实现这一目标的方法。
我可以使用 JS preg match 突出显示文本,但 preg match 不适用于变音符号,所以我想利用 MongoDB Atlas 突出显示功能。
谢谢