TODO:從數據庫中隨機抽取一條記錄數據庫
1.最直接,最粗暴的方法先計算記錄的總數,而後選擇一個從0到記錄總數之間的隨機數n,利用skip跳過n條記錄,這是效率低下的的方法,首先的記錄總數,在用skip會很耗時間;dom
2.那麼有什麼辦法可以提供效率呢,方法就是給每條記錄添加一個0-1的隨機因子random。索引
「random」 : 0.5127909016609585ip
想要在記錄中查找一個隨機記錄,只要計算出一個隨機數並做爲查詢條件就行了get
Result = db.getCollection(‘qq’).findOne({「random」:{「$gt」:random}})io
若是出現查詢不到數據,那是由於隨機數比記錄中存的隨機值都要大,就沒有結果返回了,那就換個方向查詢了,就能夠查詢到想要的數據了效率
Result = db.getCollection(‘qq’).findOne({「random」:{「$lt」:random}});隨機數
3.更多複雜的查詢,能夠把隨機因子包含在索引裏面。方法
這樣,隨機獲取一條記錄,咱們也能夠隨機獲取n條記錄,作相應的業務環境使用im
wxgzh:ludong86