yii2: агрегатное предложение mongodb возвращает внутреннюю ошибку сервера

моя база данных mongodb. Я использую следующий запрос с Yii2 для группировки.

$query->select([])
      ->from('networklog')
      ->aggregate([
          [
              '$group' => [
                  '_id' => '$userid', 'date' => [ '$max' => '$datetime' ]
              ]
          ],
          [ '$sort' => [ 'date'=>'1' ]],
       ]);

$rows = $query->all();

В mongodb я использовал следующий запрос, и он работает.

db.networklog.aggregate([
    { $group: { _id: "$userid", date: { $max: "$datetime" } } },
    { $sort: { date:1 } },
])

как написать такой же запрос в yii2 для желаемого результата?


person harish mahajan    schedule 23.09.2015    source источник


Ответы (1)


yii2 имеет следующий синтаксис для использования агрегации Mongo:

    $collection = Yii::$app->mongodb->getCollection('your_mongo_collection');

    $data = $collection->aggregate(
    [
        '$match' => [
            'name' => $name,
        ]
    ], [
        '$group' => [
            '_id' => '_id',
            'count' => [
                '$sum' => 1
            ]
        ]
    ]
);
person gb5256    schedule 03.05.2016