【发布时间】:2015-12-30 03:08:37
【问题描述】:
假设我有一堆这样的mongodb记录,它们都是字符串:
{myRecord:'foobarbazfoobaz'}
{myRecord:'bazbarfoobarbaz'}
{myRecord:'foobarfoofoobaz'}
{myRecord:'bazbarbazbazbar'}
我需要能够通过两种方式进行部分字符串匹配:
1) 我想匹配 'foobar' 所以它返回:
'foobarbazfoobaz'
'foobarfoofoobaz'
请注意,这里的 'foobar' 是一个部分字符串,它与字符串开头的任何记录匹配。 'foobar' 后面是否出现在字符串中并不重要。只要'foobar'的前六个字符与记录的前六个字符匹配,我想找回它。
2) 我需要能够匹配 'baz%%%baz' 以便它返回:
bazbarbazbazbar
这里 'baz%%%baz' 匹配任何记录的前三个字符,忽略接下来的三个字符,然后匹配最后三个字符。同样,此模式是否出现在字符串的后面并不重要,我只是对是否可以从字符串的开头匹配它感兴趣。
我认为有某种 mongo 正则表达式可以做到这一点(希望如此),但在正则表达式方面我很糟糕。任何帮助将不胜感激。
这适用于用户在时间线上搜索事件序列的 Web 应用程序,他们总是必须从头开始搜索,但如果他们愿意,可以在搜索中留空。
【问题讨论】:
-
毫无疑问,我只会被喊倒,但我看不出它是如何重复的 - 但无论如何(明显的)原始版本并没有真正帮助我解决我遇到的特定问题进入。