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