我使用以下代码来获取具有1
类型或特定值的所有价格,但它已经无效。
<?php
$m = new Mongo();
if (!$m)echo "Not Connected to database successfully";
$db =$m->mongo_project;
$collection = $db->prices;
$pipeline=array(
array(
'$match' => array(
'_id' => array(
'$type' =>1
)
)
),
array(
'$group' => array(
'_id' => '',
'count' => array(
'$sum' => '$price'
)
)
),
);
$out = $collection->aggregate($pipeline);
foreach ($out as $key=>$value) {
if($key=='result') {
$r=$value[0]['count'];
}
}
echo $r;?>
答案 0 :(得分:0)
我认为你的意思是一个包含字段&#34; type&#34;值为1.此处使用的$type
运算符是一个特殊的MongoDB运算符,用于匹配某些BSON类型。在这种情况下,您要求匹配的_id
字段是&#34; DOUBLE&#34;类型或BSON类型1。
纠正这个:
$pipeline=array(
array(
'$match' => array(
'type' => 1
)
),
array(
'$group' => array(
'_id' => '',
'total' => array(
'$sum' => '$price'
)
)
),
);
或者你可以得到&#34;总和&#34; &#34;价格&#34;每个&#34;类型&#34;通过将其作为$group
操作中的_id
传递而来的值。这样你就可以一目了然地看到一切:
$pipeline=array(
array(
'$group' => array(
'_id' => '$type',
'total' => array(
'$sum' => '$price'
)
)
),
);
在该上下文中,&#39; $ type`表示该字段的值。