Sokil\Mongo\AggregatePipelinesTest::testAggregate_Callable PHP Method

testAggregate_Callable() public method

    public function testAggregate_Callable()
    {
        $this->collection->batchInsert(array(array('order' => 1, 'item' => 1, 'amount' => 110, 'category' => 1), array('order' => 1, 'item' => 2, 'amount' => 120, 'category' => 1), array('order' => 1, 'item' => 3, 'amount' => 130, 'category' => 2), array('order' => 2, 'item' => 1, 'amount' => 210, 'category' => 1), array('order' => 2, 'item' => 2, 'amount' => 220, 'category' => 1), array('order' => 2, 'item' => 3, 'amount' => 230, 'category' => 2)));
        $result = $this->collection->aggregate(function ($pipeline) {
            /* @var $pipeline \Sokil\Mongo\Pipeline */
            $pipeline->match(array('category' => 1))->group(array('_id' => '$order', 'totalAmount' => array('$sum' => '$amount')))->sort(array('_id' => 1));
        });
        $this->assertEquals(array(0 => array('_id' => 1, 'totalAmount' => 230), 1 => array('_id' => 2, 'totalAmount' => 430)), $result);
    }