Php Mongodb中的SUM()?查询有问题吗?

Php Mongodb中的SUM()?查询有问题吗?,php,sql,mongodb,Php,Sql,Mongodb,我试图从SQL编写一个PHP(Mongo)查询,其中包含SUM(),但我不确定我的语法是否正确。有人能启发我吗 SQL: $cmd = "SELECT SUM(m_length) FROM pkt_tbl WHERE m_time>=" . $time. " AND m_buffer_latency<=" . $time; $find_projection= aggregate(array('$group'=>array('$sum'=>'$m_length')

我试图从SQL编写一个PHP(Mongo)查询,其中包含SUM(),但我不确定我的语法是否正确。有人能启发我吗

SQL:

$cmd = "SELECT SUM(m_length) FROM pkt_tbl WHERE m_time>=" . $time. " AND m_buffer_latency<=" . $time;
    $find_projection= aggregate(array('$group'=>array('$sum'=>'$m_length')));
    $result = $table -> command($find_projection);
我可以使用数组吗?sum是$result,还是无论如何我都可以使用$sum(Aggregate)。任何帮助都将不胜感激

谢谢你应该试试

php
中,此代码可能会帮助您

<?php
    $m = new Mongo;
    $c = $m->selectDB("test")->selectCollection("zips");

    $out = $c->aggregate(array(
            '$group' => array(
                '_id' => '$state',
               'totalPop' => array('$sum' => '$pop')
            )
        ),
        array(
            '$match' => array('totalPop' => array('$gte' => 10*1000*1000))
        )
    );

    var_dump($out);
?>

你应该试试

php
中,此代码可能会帮助您

<?php
    $m = new Mongo;
    $c = $m->selectDB("test")->selectCollection("zips");

    $out = $c->aggregate(array(
            '$group' => array(
                '_id' => '$state',
               'totalPop' => array('$sum' => '$pop')
            )
        ),
        array(
            '$match' => array('totalPop' => array('$gte' => 10*1000*1000))
        )
    );

    var_dump($out);
?>

这就是答案


这就回答了所有问题

感谢您的投入。如果您对我的问题有任何建议,我们将不胜感激。你能查一下我的问题吗?我在$result中使用了array_sum,我可以这样实现吗?
array_sum
获取一个
数组作为参数
计算和
like
数组_sum(数组(2,4,8,6))但是检查你在传递什么?将
array('m_length'=>1)
传递到
array_sum
是否有意义?读了这个hmm,我认为传递
$find_projection
array('m_length'=>1
将被视为一个数组(因为它是array())。你能告诉我如何更改我的查询吗?读一下这篇文章,它可能会对你有所帮助。好的。我已经尝试过使用聚合,但仍然没有解决问题。有人能检查我的语法吗?
$find\u projection=aggregate(数组('$group'=>array('$sum'=>“$m\u length'));
$result=$table->command($find\u projection)
感谢您的输入。如果您对我的查询有任何建议,我们将不胜感激。您能检查我的查询吗?我在$result中使用了array\u sum,我可以这样实现吗?
array\u sum
获取一个
数组作为参数
来计算和
array\u sum(array(2,4,8,6))
但是检查你在传递什么?传递
数组('m_length'=>1)
array\u sum
有意义吗?读这个hmm我认为传递
$find\u projection
就是
数组('m_length'=>1
会被认为是数组(因为它是数组())。你能告诉我如何更改我的查询吗?读这篇文章,它可能会对你有所帮助。好的。我尝试过使用聚合,但仍然没有解决问题。有人能检查我的语法吗?
$find\u projection=aggregate(数组('$group'=>array('$sum'=>'$m\u length'));
$result=$table->command($find\u projection)