从带有数字值的字符串列中查找计数

时间:2019-07-11 09:55:48

标签: php mongodb count

我有一个数据集,其中数字列也是字符串类型。

我需要计数值大于5且小于60的行数。由于它是一个字符串列,因此具有逗号分隔的数字。

此列中数据库中的值类似于

98,800
40,857.06
5
500
1,250
40

代码:

$rangeQuery = array('NumberInt(this.turnover_GBP_LT)' => array( '$gt' => 5, '$lt' => 100 ));

$cursor = $collection->count($rangeQuery);

尽管数据库中有可用值,但我将计数设为0。

1 个答案:

答案 0 :(得分:0)

您可以使用以下php代码

$numbers = array('98,800',
'40,857.06',
'5',
'500',
'1,250',
'40');

$min = 5;
$max = 100;
$count =  count(array_filter(
    $numbers,
    function ($value) use($min,$max) {
        $value = filter_var($value, FILTER_SANITIZE_NUMBER_INT);
        return ($value > $min && $value < $max);
    }
));