首页 > 解决方案 > MongoDB 正则表达式字符串以开头和结尾

问题描述

所以我有一些看起来像这样的东西

db.usuarios.insert
(
    [
        {
            "nome" : "neymala",
            "idade" : 40,
            "status" : "solteira"
        },
        {
            "nome" : "gabriel",
            "idade" : 31,
            "status" : "casado"
        },
        {
            "nome" : "jose",
            "idade" : 25,
            "status" : "solteiro"
        },
        {
            "nome" : "manoel",
            "idade" : 25,
            "status" : "solteiro",
            "interesses" : [
                "esporte",
                "musica"
            ]
        }
    ]
)

我想查找以 ma 开头并以 l 结尾的名称,例如“manoel”或“manuel”

我已经想出了如何使用闲置查询来做一个或另一个:

db.usuarios.find({nome:{$regex: /^ma/ }})

db.usuarios.find({nome:{$regex: /l$/ }})

现在我想将它们组合成一个查询。

标签: jsonregexmongodb

解决方案


您可以将这两个要求组合成一个正则表达式:

db.usuarios.find({nome: /^ma.*l$/})

在正则表达式中,.*表示匹配 0 个或多个任意字符。所以这个正则表达式匹配以 开头ma和结尾的名称l,忽略两者之间的任何内容。


推荐阅读