Fra og med 3.2-udgivelsen af MongoDB kan du få N tilfældige dokumenter fra en samling ved hjælp af $sample
aggregeringspipeline-operatør:
// Get one random document from the mycoll collection.
db.mycoll.aggregate([{ $sample: { size: 1 } }])
Hvis du vil vælge det eller de tilfældige dokumenter fra en filtreret delmængde af samlingen, skal du sætte en $match
foran fase til pipelinen:
// Get one random document matching {a: 10} from the mycoll collection.
db.mycoll.aggregate([
{ $match: { a: 10 } },
{ $sample: { size: 1 } }
])
Som nævnt i kommentarerne, når size
er større end 1, kan der være dubletter i den returnerede dokumentprøve.