搜尋

首頁  >  問答  >  主體

mongodb - mongo中如何實作自增id,刪除其中一個id後,所有id重新排序?

想用id(1-n)記錄部落格文章發表的次序,在網路上查找到一個方法,透過增加一個sequence表,但是這種方法有個缺點,就是一旦其中某篇文章刪除後,其他id不會改變,求更好的方法

迷茫迷茫2867 天前816

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-05-02 09:28:01

    您這種想法在MongoDB中估計比較難以實現。您這種思路源自於在許多關係型資料庫中提供了identity的計數器。

    在MongoDB中,如果您需要對部落格文章發表排序,是可以使用時間,或其他的適合排序的"field"來進行排序的。

    供參考。

    Love Mongo! Have Fun!


    -->戳我<--請戳左邊,就在四月!趕緊報名!

    MongoDB中文社群深圳用戶大會開始報名囉!本論壇大神將在大會上隆重出台,並發表演說。此處有掌聲! ! !

    回覆
    0
  • 漂亮男人

    漂亮男人2017-05-02 09:28:01

    沒理解錯的話,你這個要求無論什麼資料庫都做不到。假設我現在有10000篇博客,我刪除了第一篇,你要把後面9999篇文章都重新生成ID?如果一共有100w篇部落格該怎麼辦?所以這個思路本身是不正確的。
    如果要達到的目的只是記錄文檔發表的順序,預設的_id使用ObjectId完全可以满足你的需求。ObjectId本身是遞增的,排序即可。
    關於ObjectId我寫過一篇部落格介紹相關的知識,有興趣請戳這裡。

    回覆
    0
  • 取消回覆