[MongoDB] Lấy danh sách các bản ghi sắp xếp ngẫu nhiên


Để  lấy danh sách 10 bản ghi sắp xếp ngẫu nhiên trong MongoDB  (order by rand) chúng ta sử dụng câu lệnh mongo shell sau:

db.posts.aggregate([
    { $sample : { size: 10 } }
])

Nếu các bạn muốn filter (where) theo một điệu kiện nhất định. VD: column site = ‘vinasupport.com‘ thì dùng lệnh mongo shell sau đây.

db.posts.aggregate([
    { $match : { site: 'vinasupport.com' } },
    { $sample : { size: 10 } }
])

Trường hợp các bạn sử dụng PHP Laravel với MongoDB thì tham khảo đoạn code sau:

Post::raw(
    function($collection)
    {
        return $collection->aggregate([
            // Filter by site
            ['$match' => ['site' => 'vinasupport.com'],
            ['$sample' => ['size' => 10]]
        ]);
    }
);

Nguồn vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web