Skip to content

Commit

Permalink
Format aggregation queries in data collector
Browse files Browse the repository at this point in the history
  • Loading branch information
alcaeus committed Apr 11, 2017
1 parent ee1cdeb commit f280f33
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 1 deletion.
10 changes: 9 additions & 1 deletion DataCollector/PrettyDataCollector.php
Expand Up @@ -84,7 +84,15 @@ public function collect(Request $request, Response $response, \Exception $except
}

// format the method call
if (isset($log['authenticate'])) {
if (isset($log['aggregate'])) {
$query .= '.aggregate(' . $this->bsonEncode($log['pipeline']);

if ($log['options']) {
$query .= ', ' . $this->bsonEncode($log['options']);
}

$query .= ')';
} elseif (isset($log['authenticate'])) {
$query .= '.authenticate()';
} elseif (isset($log['batchInsert'])) {
if (1 === $log['num']) {
Expand Down
50 changes: 50 additions & 0 deletions Tests/DataCollector/PrettyDataCollectorTest.php
Expand Up @@ -312,4 +312,54 @@ public function testCollectLimitAndSort()
$this->assertEquals(1, $collector->getQueryCount());
$this->assertEquals($formatted, $collector->getQueries());
}

public function testCollectAggregate()
{
$queries = [
[
'aggregate' => true,
'pipeline' => [
[
'$group' => [
'_id' => '$verified',
'count' => ['$sum' => 1],
],
],
],
'options' => [],
'db' => 'foo',
'collection' => 'User',
],
[
'aggregate' => true,
'pipeline' => [
[
'$group' => [
'_id' => '$verified',
'count' => ['$sum' => 1],
],
],
],
'options' => ['group' => true],
'db' => 'foo',
'collection' => 'User',
],
];

$formatted = [
'use foo;',
'db.User.aggregate([ { "$group": { "_id": "$verified", "count": { "$sum": 1 } } } ]);',
'db.User.aggregate([ { "$group": { "_id": "$verified", "count": { "$sum": 1 } } } ], { "group": true });',
];


$collector = new PrettyDataCollector();
foreach ($queries as $query) {
$collector->logQuery($query);
}
$collector->collect(new Request(), new Response());

$this->assertEquals(2, $collector->getQueryCount());
$this->assertEquals($formatted, $collector->getQueries());
}
}

0 comments on commit f280f33

Please sign in to comment.