node.js - NodeJS Mongoose 不接受 $regex 中的字符串变量
问题描述
我得到了一条记录, admin.name = "FooBar" 我想在名称上做一个 findOne 但不区分大小写。
在 Studio3T 中,这工作正常...
db.admin.findOne(
{ name: { $regex: /^FoObAr/i } }
)
但是在 nodeJS 中,我似乎无法将包含正则表达式的变量放入 find 语句中......
Let ID = "FoObAr"
return resolve( adminModel.findOne( { "name" : { $regex: "/^" + ID + "$/i"} } ) );
这导致...(给出 0 个结果)
Mongoose: admin.findOne({ name: { '$regex': '/^FoObAr$/i' } }, { projection: {} })
我也试过
Let ID = "FoObAr"
return resolve( adminModel.findOne( { "name" : { $regex: /^ ID $/i } ) );
这导致...(给出 0 个结果)
Mongoose: admin.findOne({ name: { { $regex: /^ ID $/i } }, { projection: {} })
有任何想法吗?
解决方案
请使用正则表达式功能
admin.find({name:new RegExp(['^',ID, '$'].join(''), 'i')}).projection({})
推荐阅读
- javascript - jQuery折叠,一次显示一个
- mysql - 在 MySQL 中显示一次相同的数据
- python - 连接到excel时使用Pandas将CSV数据转换为数字
- javascript - 展开一个 div 元素 onClick 总是展开同一个 div 元素
- python - 如何打印列表中元素的索引 - python
- ionic-framework - IONIC 5页脚如何摆脱页脚图标上方的栏?
- google-cloud-platform - 尝试从 Firebase 部署的 NextJs 应用程序访问 NestJs Google VM 服务器时出错
- python - VS Code 内核为空
- docker - 我可以在 MySQL docker 容器中运行 cronjob 吗?
- python-3.x - 如何从嵌套字典中迭代嵌套字典的“值”