Get Random record from MongoDB?

Use the $sample aggregation stage to get random records from a MongoDB collection. The size parameter specifies how many random documents to return.

Syntax

db.collectionName.aggregate([{ $sample: { size: N } }]);

Create Sample Data

db.employeeInformation.insertMany([
    {"EmployeeId": 1, "EmployeeName": "Maxwell", "EmployeeAge": 26},
    {"EmployeeId": 2, "EmployeeName": "David", "EmployeeAge": 25},
    {"EmployeeId": 3, "EmployeeName": "Carol", "EmployeeAge": 24},
    {"EmployeeId": 4, "EmployeeName": "Bob", "EmployeeAge": 28},
    {"EmployeeId": 5, "EmployeeName": "Sam", "EmployeeAge": 27}
]);

Get One Random Record

db.employeeInformation.aggregate([{ $sample: { size: 1 } }]).pretty();

First run ?

{
    "_id": ObjectId("..."),
    "EmployeeId": 5,
    "EmployeeName": "Sam",
    "EmployeeAge": 27
}

Second run (different random result) ?

{
    "_id": ObjectId("..."),
    "EmployeeId": 2,
    "EmployeeName": "David",
    "EmployeeAge": 25
}

Get Multiple Random Records

Change size to get more random documents ?

// Get 3 random records
db.employeeInformation.aggregate([{ $sample: { size: 3 } }]).pretty();

Conclusion

The $sample aggregation stage is the simplest and most efficient way to retrieve random records from MongoDB. Set size to the number of random documents needed. Each execution returns a different random selection.

Updated on: 2026-03-14T23:18:41+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements