jessenger mongodb不区分大小写的查询搜索

时间:2016-04-05 13:35:37

标签: mongodb laravel

我有一个问题,mongodb查询搜索具有确切的值。无论区分大小写,我都想获得收藏。为此,我发现了一些像下面的查询。工作正常。

db.applications.find({"blocks.HOSPITAL_INFO.data.name": new RegExp('^VIKRAM$', 'i')}); 
在laravel我正在使用jessengers。 。以上查询我可以在laravel中写为原始查询。

但我的问题是,当我使用$ In:{'a','b'}这样的时候我怎么能写这个正则表达式。 FYI'a','b'是动态数组值。那么如何为这些数组值编写正则表达式呢?

1 个答案:

答案 0 :(得分:0)

MongoDB中的查询将是这样的:

db.applications.find({"blocks.HOSPITAL_INFO.data.name":
   {$in:[new RegExp('^a$', 'i'),new RegExp('^b$', 'i')]}}); 

OR,或者:

db.applications.find({"blocks.HOSPITAL_INFO.data.name":
   {$in:[/^a$/i,/^b$/i]}});

......其中a& b是你的动态变量。

我对Laravel不太熟悉,但我猜它看起来像这样:

$applications = Application::whereIn('blocks.HOSPITAL_INFO.data.name',
   [new MongoRegex('^a$/i'), new MongoRegex('^b$/i')])->get();