db.user.aggregate( [ { $sample: { size: 10 } } ] )
上面的命令可以随机返回集合user中的20条数据
使用MongoDB的aggregate聚合函数 + $sample表达式
db.collection_name.aggregate()
$sample 表达式:
3.2+版本中新增,类似于大数据中的“数据采样”方式,从input中随机选择N条documents,语法“{$sample: {size: <N>}}”。如果N大于collection中总数据的5%,那么$sample将会执行collection扫描、sort,然后选择top N条文档;如果N小于5%,对于wiredTiger而言则会遍历collection并使用“伪随机”的方式选取N条文档,对于MMAPv1引擎则在_id索引上随机选取N条文档。