mongodb配置權重的方案改寫

來源:互聯網
上載者:User

標籤:

我想配置一個權重池,有3個權重A,B,C,根據不同權重選取2個id

我原本的設計是

權重A:[id1,id2...]

權重B:[id1,id2...]

權重C:[id1,id2...]

權重的操作有$push, $pop,和取整個表的操作,這樣如果頻繁操作有可能導致所標

我一個同事提出了另一個方案:

{

  {

    uid:id1

    weight:A

  }

  {

    uid:id2

    weight:B

  }

......

}

只要把weight key加上索引,取的時候根據weight索引去取全部A的文檔。

下面方面的優勢如下:

直接用$set 就可以改變權重了,(用pop,push)pop某個值會遍曆數組,資料量大了,效率不高,甚至有可能導致鎖表。

weight加上索引後,取A權重的全部id的速度,比上面沒加索引的快2/3(加了索引,是直接尋找)。

 

mongodb配置權重的方案改寫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.