Bắt đầu với bản phát hành 3.2 của MongoDB, bạn có thể nhận N tài liệu ngẫu nhiên từ bộ sưu tập bằng cách sử dụng $sample
nhà điều hành đường ống tổng hợp:
// Get one random document from the mycoll collection.
db.mycoll.aggregate([{ $sample: { size: 1 } }])
Nếu bạn muốn chọn (các) tài liệu ngẫu nhiên từ một tập hợp con đã lọc của bộ sưu tập, hãy thêm vào trước một $match
giai đoạn dẫn đến đường ống:
// Get one random document matching {a: 10} from the mycoll collection.
db.mycoll.aggregate([
{ $match: { a: 10 } },
{ $sample: { size: 1 } }
])
Như đã lưu ý trong các nhận xét, khi size
lớn hơn 1, có thể có các bản sao trong mẫu tài liệu trả về.