【问题标题】:mongo search for part of string match in words arraymongo在单词数组中搜索部分字符串匹配
【发布时间】:2016-07-11 17:23:42
【问题描述】:

我想在 mongodb 列表元素中查找部分字符串匹配 例如我的搜索字符串是:

“你好,我们在火星上”

我的记录标签是:

  1. 词:[“地狱”,“布布世界”]
  2. 单词:["we are", "cookie"]
  3. 单词:["are nono mars", "w"]

我只想获取 2 号记录,其中 一个 数组元素匹配

【问题讨论】:

    标签: arrays regex string mongodb find


    【解决方案1】:

    这可能不是您正在寻找的确切答案。但是,我已经概述了我的想法,以便您重新考虑需求和可能的解决方案。

    您可能需要重新考虑如何设计解决方案。您可能无法在单个 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

    您还可以通过将短语括在转义双引号 (\") 中来执行短语搜索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-03
      • 2022-01-23
      • 2013-06-04
      • 2011-11-30
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多