mongoose 查询 $in 不区分大小写的正则表达式不起作用

Posted

技术标签:

【中文标题】mongoose 查询 $in 不区分大小写的正则表达式不起作用【英文标题】:mongoose query $in with case insensitive regex not working 【发布时间】:2015-12-25 08:40:11 【问题描述】:

我在 mongoDB 中有一个电子邮件列,我必须检查数组中的字段,目前我正在使用以下查询

emailArray = [
   '$regex': /test@email.com/i ,
   '$regex': /test2@email.com/i ,
 ]
'$or': [  email: emailArray ,  name: 'testUser'  ] 

我收到以下错误

路径“email”中值“[object Object]”的字符串转换失败

我不确定查询有什么问题:(

【问题讨论】:

【参考方案1】:

你做错了。 emailArray 应该是正则表达式的数组,而且您在查询中缺少 $in

var emailArray = [ /test@email.com/i, /test2@email.com/i ]
db.collection.find( 
    '$or': [ 
         'email':  '$in': emailArray  , 
         'name': 'testUser'  
    ] 
)

【讨论】:

解决了我的问题,再次感谢您节省了我的时间 :)

以上是关于mongoose 查询 $in 不区分大小写的正则表达式不起作用的主要内容,如果未能解决你的问题,请参考以下文章

python Django:如何使查询不区分大小写__in

JPA - 带有in子句和不区分大小写的规范

Nginx中的正则如何匹配数字

Mongoose 模式:验证唯一字段,不区分大小写

Mongoose 模式:验证唯一字段,不区分大小写

Python中不区分大小写的正则表达式[重复]