如何在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'
)
)
)
)
)
);