【问题标题】:MongoDB Like Query (starting letter or word find query)MongoDB Like Query(起始字母或单词查找查询)
【发布时间】:2014-03-19 10:11:29
【问题描述】:

我有一个 MongoDB 查询,如下所述:

Mailbox.find({ subject: new RegExp(query , 'i') });

此查询为我提供包含该查询的所有结果。例如,我的查询是测试,然后输出显示包含“测试”的所有结果。

如果我想要只有开头字母 't' 或单词 'test' 的结果,怎么办?

【问题讨论】:

  • 类似/^test.*/
  • 您的意思是想要在任何位置以“t”或单词“test”开头的结果,还是只想在开头同时使用“t”和“test”?
  • 但单词“test”是以“t”开头的单词的子集。如果你想得到所有以“t”开头的单词,你会自动得到“test”这个词
  • 如果我输入“test”进行搜索,它会显示所有包含“test”的结果,即使它出现在句子的中间。我需要“test”只出现在句子的开头。
  • 这就是@Sammaye 所说的,符号“^”表示开头。在此处查找 PCRE 正则表达式文档:pcre.org

标签: javascript node.js regex mongodb mongodb-query


【解决方案1】:

这是一个通用的正则表达式问题,应该可以搜索

/^test/

^ 插入符号表示行的开始。

在 mongo 中也建议从 start 开始搜索以提高效率,这意味着避免收集扫描。更多关于这种形式的信息,请查看文档中的$regex

将此作为书签保存,作为您可能需要的任何其他更改的参考。

http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多