【发布时间】:2016-07-11 17:23:42
【问题描述】:
我想在 mongodb 列表元素中查找部分字符串匹配 例如我的搜索字符串是:
“你好,我们在火星上”
我的记录标签是:
- 词:[“地狱”,“布布世界”]
- 单词:["we are", "cookie"]
- 单词:["are nono mars", "w"]
我只想获取 2 号记录,其中 一个 数组元素匹配
【问题讨论】:
标签: arrays regex string mongodb find
我想在 mongodb 列表元素中查找部分字符串匹配 例如我的搜索字符串是:
“你好,我们在火星上”
我的记录标签是:
我只想获取 2 号记录,其中 一个 数组元素匹配
【问题讨论】:
标签: arrays regex string mongodb find
这可能不是您正在寻找的确切答案。但是,我已经概述了我的想法,以便您重新考虑需求和可能的解决方案。
您可能需要重新考虑如何设计解决方案。您可能无法在单个 Mongo 查询中实现您所期望的,因为通常数据库属性会包含更多的文本,而搜索字符串会包含更少的单词。根据您的问题,您的要求与此相反。
在 MongoDB 中进行典型文本搜索的一种可能解决方案是“文本”索引并在查找中使用“$text”和“$search”。
https://docs.mongodb.com/manual/reference/operator/query/text/#op._S_text
创建文本索引:-
db.collectionname.createIndex({words : "text"})
db.words.find( { $text: { $search: "Hello world we are on mars", $caseSensitive: true } } )
结果将是:1 和 3
您还可以通过将短语括在转义双引号 (\") 中来执行短语搜索。
【讨论】: