【问题标题】:How to find on the basis of case-insensitive value in MongoDB PHP?如何在MongoDB PHP中查找不区分大小写的值?
【发布时间】:2018-09-07 07:11:45
【问题描述】:

如何在MongoDB PHP中查找不区分大小写的值?

我正在使用下面的代码行

$query = ['VehicleNumber' => $arg];
$cursor = $this->collection->find($query);

我想根据 VehicleNumber 查找数据,但它应该能够根据不区分大小写的 arg 查找数据。例如,如果表中有车辆编号的数据,如 JK AB123、JK DE245 等。现在如果 arg 包含 jk Ab123,它应该能够找到该数据。

请帮忙!!!

【问题讨论】:

    标签: mongodb mongodb-query mongodb-php php-mongodb


    【解决方案1】:

    您应该使用带有“i”标志的\MongoDB\BSON\Regex(不区分大小写以匹配大小写)。

    您还应该转义字符串以不匹配任何正则表达式特殊字符;为此,您可以使用preg_quote

    $query = ['VehicleNumber' => new \MongoDB\BSON\Regex( preg_quote($arg),"i")];
    

    【讨论】:

      【解决方案2】:

      您可以使用$regex 查找区分大小写的值。

      db.col.find({"VehicleNumber": { "$regex": /^jk Ab123/i } })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-15
        • 2011-10-29
        • 2011-02-22
        • 1970-01-01
        • 2010-12-29
        • 1970-01-01
        相关资源
        最近更新 更多