Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mongodb php中进行减法_Php_Mongodb_Mongodb Query_Aggregation Framework - Fatal编程技术网

如何在mongodb php中进行减法

如何在mongodb php中进行减法,php,mongodb,mongodb-query,aggregation-framework,Php,Mongodb,Mongodb Query,Aggregation Framework,正在运行的查询: $getdataPipeline = array( array( '$match' => array( 'project_id' => array('$in' => $mysql_project_id) // Validating project ID ), '$match' => array(

正在运行的查询:

 $getdataPipeline = array(
            array(
                '$match' => array(
                    'project_id' => array('$in' => $mysql_project_id) // Validating project ID
                ),
                '$match' => array('project_id' => $project_id)
            ),
            array(
                '$group' => array(
                    '_id' => array('pro_id' => '$project_id', 'uid' => '$user_id'),
                    "wh" => array('$subtract' => array(array('$sum' => '$toltal_timein_minutes'), array('$sum' => '$holding_durationin_minutes')))

                ))
        );
我犯了一个错误,就像

未捕获异常“MongoResultException”,消息为“localhost:27017:exception:unknown group operator”$subtract“”

是要与$group一起使用的累加器,因此它必须是使用的顶级运算符。因此,您的其他操作需要在
$sum
的“内部”进行:

  $ValidProjectIdInMongo = $collection->aggregate($getdataPipeline);
您可以在这里执行此操作,因为这是基本的减法,但更复杂的操作通常需要在
$group
之后有一个单独的
$project
阶段

还要注意,yout
$match
管道阶段是不正确的,它实际上将被解释为与我在上面重新编写的一样。对于这两个可能的值,您的意思可能是在
$in
条件中,这是一个逻辑
$或


字段名中也有类似于键入错误的内容。

您不能在
$group
阶段中使用
$subtract
。它仅适用于
$project
$getdataPipeline = array(
    array(
        '$match' => array('project_id' => $project_id)
    ),
    array(
        '$group' => array(
            '_id' => array('pro_id' => '$project_id', 'uid' => '$user_id'),
            "wh" => array( 
                '$sum' => array( 
                    '$subtract' => array( 
                        '$toltal_timein_minutes', 
                        '$holding_durationin_minutes'
                    ) 
                ) 
            )
        )
    )
);