我有一个问题,mongodb查询搜索具有确切的值。无论区分大小写,我都想获得收藏。为此,我发现了一些像下面的查询。工作正常。
db.applications.find({"blocks.HOSPITAL_INFO.data.name": new RegExp('^VIKRAM$', 'i')});
在laravel我正在使用jessengers。 。以上查询我可以在laravel中写为原始查询。
但我的问题是,当我使用$ In:{'a','b'}这样的时候我怎么能写这个正则表达式。 FYI'a','b'是动态数组值。那么如何为这些数组值编写正则表达式呢?
答案 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();