【问题标题】:MongoDB find field that is part of a longer stringMongoDB 查找属于较长字符串一部分的字段
【发布时间】:2015-09-21 05:58:59
【问题描述】:

我知道如何在 MongoDB 和 Node 中搜索包含我搜索的一部分的字段,或者即使可能,即。 记录:

{ 名称:“你好,我的名字是鲁滨逊” }

查询:

{ 名称:/罗宾逊/我 }

但我不知道如何做相反的事情

即: 查询:

{ 名称:“你好,我的名字是鲁滨逊” }

记录:

{ 名称:“罗宾逊” }

我正在尝试制定规则以根据字符串的内容对字符串进行分类。任何帮助深表感谢。内容可能并不总是被分解成单词,否则我可以只用空格分割并搜索每个单词。

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    使用文本索引,您应该能够从短语文本搜索中找到文档。

    http://docs.mongodb.org/manual/reference/operator/query/text/#match-any-of-the-search-terms

    如果搜索字符串是空格分隔的字符串,$text 运算符对每个术语执行逻辑 OR 搜索并返回包含任何术语的文档。

    在您的示例中,您在集合的“名称”字段中创建索引:

    db.collection.createIndex( { name: "text" } )
    

    然后就可以用$text操作符查询了:

    db.collection.find({$text: { $search: "Hello my name is robinson"}})
    

    如文档中所述,查询返回的文档包含“Hello or my or name or is or强>罗宾逊”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多