0

I need to get only 4 documents from MongoDB by node/express.js . I can make the limit for the 4 documents but not for random 4 . SO, how can I get 4 random documents?

1 Answers1

0

Starting with the 3.2 release of MongoDB, you can get N random docs from a collection using the $sample aggregation pipeline operator:

// Get one random document from the mycoll collection.
db.mycoll.aggregate([{ $sample: { size: 1 } }])

If you want to select the random document(s) from a filtered subset of the collection, prepend a $match stage to the pipeline:

// Get one random document matching {a: 10} from the mycoll collection.
db.mycoll.aggregate([
    { $match: { a: 10 } },
    { $sample: { size: 1 } }
])

When size is greater than 1, there may be duplicates in the returned document sample.