Yii2 MongoDB 非重复计数
Yii2 MongoDB distinct count
如何使用查询从集合中获取不同的值?
现在我正在使用这个解决方案:
$collection = Yii::$app->mongodb->getCollection('collection_name');
$result = $collection->distinct('field_id');
return count($result);
集合示例:
{
{a: 2},
{a: 2},
{b: 3},
{c: 4}
}
结果必须是:
3
您可以为此使用 aggregation 框架:
$collection = Yii::$app->mongodb->getCollection('collection_name');
$result = $collection->aggregate(
array('$group' => array(
'_id' => '$field_id'
)),
array('$group' => array(
'_id' => 1,
'count' => array( '$sum' => 1 )
))
);
尝试这个未测试但你可以得到你的结果,如果出现异常请进行一些更改。
use yii\mongodb\Query;
$query = new Query;
$count = $query->from('collection_name')->distinct('field_id')->count();
如何使用查询从集合中获取不同的值? 现在我正在使用这个解决方案:
$collection = Yii::$app->mongodb->getCollection('collection_name');
$result = $collection->distinct('field_id');
return count($result);
集合示例:
{
{a: 2},
{a: 2},
{b: 3},
{c: 4}
}
结果必须是:
3
您可以为此使用 aggregation 框架:
$collection = Yii::$app->mongodb->getCollection('collection_name');
$result = $collection->aggregate(
array('$group' => array(
'_id' => '$field_id'
)),
array('$group' => array(
'_id' => 1,
'count' => array( '$sum' => 1 )
))
);
尝试这个未测试但你可以得到你的结果,如果出现异常请进行一些更改。
use yii\mongodb\Query;
$query = new Query;
$count = $query->from('collection_name')->distinct('field_id')->count();