gpt4 book ai didi

regex - Mongodb中的部分字符串匹配

转载 作者:行者123 更新时间:2023-12-03 16:54:27 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to query MongoDB with "like"

(44 个回答)


5年前关闭。




假设我有一堆这样的 mongodb 记录,它们都是字符串:

{myRecord:'foobarbazfoobaz'}
{myRecord:'bazbarfoobarbaz'}
{myRecord:'foobarfoofoobaz'}
{myRecord:'bazbarbazbazbar'}

我需要能够以两种方式进行部分字符串匹配:

1) 我想匹配 'foobar' 所以它返回:
'foobarbazfoobaz'
'foobarfoofoobaz'

请注意,这里的 'foobar' 是一个部分字符串,它与字符串开头的任何记录相匹配。 'foobar' 是否出现在字符串的后面并不重要。只要 'foobar' 的前六个字符与记录的前六个字符匹配,我就想取回它。

2)我需要能够匹配 'baz%%%baz' 所以它返回:
bazbarbazbazbar

这里 'baz%%%baz' 匹配任何记录的前三个字符,忽略接下来的三个字符,然后匹配最后三个字符。同样,这个模式是否出现在字符串的后面并不重要,我只是对是否可以从字符串的开头匹配它感兴趣。

我认为有某种 mongo regex 可以做到这一点(希望如此),但在 regex 方面我很糟糕。任何帮助将不胜感激。

这是针对 Web 应用程序,用户在时间轴上搜索事件序列,他们总是必须从头开始搜索,但如果他们愿意,可以在搜索中留空。

最佳答案

您可以尝试 $regex 运算符

1) I want to match on 'foobar'



db.collection.find({"myRecord":{"$regex":"^foobar*"}})

I need to be able match on 'baz%%%baz'



db.collection.find({"myRecord":{"$regex":"^baz.{3}baz"}})

希望它会有所帮助

关于regex - Mongodb中的部分字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32898139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com