json - 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$/ }})
现在我想将它们组合成一个查询。
解决方案
您可以将这两个要求组合成一个正则表达式:
db.usuarios.find({nome: /^ma.*l$/})
在正则表达式中,.*
表示匹配 0 个或多个任意字符。所以这个正则表达式匹配以 开头ma
和结尾的名称l
,忽略两者之间的任何内容。
推荐阅读
- c# - 如何访问存储在 C# 类型中的所有属性变量?
- node.js - 带有 Sequelize many to many 的额外列
- reactjs - React 'props' 未定义
- python - 它们是“浮点数”数组,但仍不能相乘
- php - 未找到 InvalidArgumentException 视图 [auth.login]
- azure - 如何为指向 Azure AD 中单个 Web 应用程序的不同用户集设置两个不同的 SAML 应用程序
- oracle - 如何编写一个可以接受任意数据类型的可变数量参数的plsql存储过程?
- javascript - JavaScript 功能仅在页面重新加载后有效
- html - 如何在 html 表格列中打印一天中的小时数?
- flutter - Flutter:将 Base64 String 图像 url 转换为 File 并在 FileImage 或相关小部件中使用