MongoDB与JavaScript大小写不敏感查询:变量使用问题求助
解决MongoDB正则匹配中变量替换的问题
你原来的代码无法工作,是因为/code/i是正则字面量,它匹配的是字符串"code"本身,而不是变量code的值。不需要给变量加特殊引号或转换类型,只要用正确的方式引用变量构造正则即可,以下两种方法都可以:
方法一:使用RegExp构造函数
通过RegExp构造函数传入变量和修饰符,动态创建正则表达式:
const code = "group1"; const group: any = await this.groupModel.findOne({ name: new RegExp(code, 'i') });
方法二:使用MongoDB的$regex与$options语法
用MongoDB原生的查询语法,将正则字符串和修饰符分开指定:
const code = "group1"; const group: any = await this.groupModel.findOne({ name: { $regex: code, $options: 'i' } });
这两种方式都能实现忽略大小写匹配变量code对应的分组名称,替换后就能正常查询到目标文档了。
内容的提问来源于stack exchange,提问作者user19238266
相关产品推荐
相关产品推荐

