Vanaf de 3.2-release van MongoDB kun je N willekeurige documenten uit een verzameling halen met behulp van de $sample
aggregatie pijpleiding operator:
// Get one random document from the mycoll collection.
db.mycoll.aggregate([{ $sample: { size: 1 } }])
Als u het (de) willekeurige document(en) uit een gefilterde subset van de verzameling wilt selecteren, voeg dan een $match
toe stap naar de pijplijn:
// Get one random document matching {a: 10} from the mycoll collection.
db.mycoll.aggregate([
{ $match: { a: 10 } },
{ $sample: { size: 1 } }
])
Zoals vermeld in de opmerkingen, wanneer size
groter is dan 1, kunnen er duplicaten zijn in het geretourneerde documentvoorbeeld.