您好,登錄后才能下訂單哦!
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。