Tốt hơn hết là bạn nên sử dụng các phương pháp khung tổng hợp và cũng có thể đi sâu vào đối tượng thu thập MongoDB thô được cung cấp từ trình điều khiển cơ bản để làm như vậy. Đó là một lựa chọn tốt hơn nhiều nếu cố gắng dịch cú pháp:
// Returns the original Mongo Result
$result = DB::collection('changes')->raw(function($collection)
{
return $collection->aggregate(array(
array(
'$group' => array(
'_id' => '$field',
'count' => array(
'$sum' => 1
)
)
)
));
});
Kết quả hơi khác so với kết quả của một phương thức như .group()
nhưng điều này sử dụng mã gốc trên máy chủ MongoDB và không dựa vào diễn giải JavaScript như .group()
phương thức thực sự hoạt động, thực sự là một trình bao bọc xung quanh mapReduce.
Kết quả cuối cùng nhanh hơn nhiều và nhìn chung cũng hiệu quả hơn so với việc bạn thoát ra khỏi giao diện khung gốc.
Vì vậy, hãy sử dụng cách MongoDB gốc để có hiệu suất tốt nhất.