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條文檔。