欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+MongoDB自增鍵值的簡單實現(xiàn)

 更新時間:2016年11月04日 10:49:27   投稿:jingxian  
下面小編就為大家?guī)硪黄狿ython+MongoDB自增鍵值的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

背景

最近在寫一個測試工具箱,里面有一個bug記錄系統(tǒng),因為后臺我是用Django和MongoDB來實現(xiàn)的,就遇到了一個問題,要如何實現(xiàn)一個自增的字段。

傳統(tǒng)的關系型數(shù)據(jù)庫要實現(xiàn)起來是非常容易,只要直接設置一個自增字段就行了,插入數(shù)據(jù)時不用管這個鍵值,只管自己處理的數(shù)據(jù)就行了,會自動實現(xiàn)自增的功能,但是非關系型數(shù)據(jù)庫好像沒有這個功能(或者我不知道)。百度之后發(fā)現(xiàn)都是MongoDB的設置方法,并不是我想要的。

解決思路

百度沒有找到好的思路,那就只能自己解決了,我的想法很簡單,字段不會自增,那么就自己造一個自增的方案。

我發(fā)現(xiàn)在MongoDB修改的方法有一個$inc的方法.可以實現(xiàn)int類型的自增。那么就非常簡單了,自己建一個collection,然后這個collection中只有一個int的字段,每次插入數(shù)據(jù)時來這個collection取ID就行了,然后再調用一下$inc方法,那么就實現(xiàn)了自動自增的方案。

代碼展示

Python實現(xiàn)起來還是非常簡單的Python和Django非常契合。代碼如下:

 

def bugPlus(self):
  """
  bugID自增
  :return:True
  """
  db = self.__chooseCollection(config.COLLECTION['bugID'])
  db.update_one({"bugID": self.getBugID()}, {"$inc": {"bugID": 1}})
  return True

 每次插入成功后,調用這個方法就可以實現(xiàn)ID的自增。

def getBugID(self):
  """
  獲取當前bug的最新編號
  :return:None
  """
  db = self.__chooseCollection(config.COLLECTION['bugID'])
  rst = db.find_one()
  return rst['bugID']

在插入之前,調用這個方法,這樣每次插入數(shù)據(jù)時插入的ID就是實現(xiàn)自增的ID。

缺點

當然,這種方式還是有缺點的,調用的時候多使用了方法,因此需要確認方法是否執(zhí)行成功,否則會導致下次插入的ID不是自增后的數(shù)據(jù)。每次多調了一次方法,會導致性能下降。

其他

如果有更好的實現(xiàn)方式,請告訴我!

以上這篇Python+MongoDB自增鍵值的簡單實現(xiàn)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用python進行文件處理的庫存管理

    使用python進行文件處理的庫存管理

    庫存管理是任何處理實物商品的企業(yè)的一個重要方面,Python?提供了各種庫來讀取和寫入文件,使其成為管理庫存的絕佳選擇,它允許我們使用?Python?等編程語言來操作計算機文件系統(tǒng)上的文件,在本文中,我們將探討如何使用文件處理在?Tkinter?中實現(xiàn)庫存管理系統(tǒng)
    2023-09-09
  • widows下安裝pycurl并利用pycurl請求https地址的方法

    widows下安裝pycurl并利用pycurl請求https地址的方法

    今天小編就為大家分享一篇widows下安裝pycurl并利用pycurl請求https地址的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 新版Pycharm顯示Conda?executable?is?not?found解決辦法

    新版Pycharm顯示Conda?executable?is?not?found解決辦法

    這篇文章主要給大家介紹了關于新版Pycharm顯示Conda?executable?is?not?found解決辦法,文中通過圖文介紹的非常詳細,對大家學習或者使用Pycharm具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 淺析Python中signal包的使用

    淺析Python中signal包的使用

    這篇文章主要介紹了Python中signal包的使用,主要在Linux系統(tǒng)下對進程信號進行相關操作,需要的朋友可以參考下
    2015-11-11
  • Python實現(xiàn)去除圖片中指定顏色的像素功能示例

    Python實現(xiàn)去除圖片中指定顏色的像素功能示例

    這篇文章主要介紹了Python實現(xiàn)去除圖片中指定顏色的像素功能,結合具體實例形式分析了Python基于pil與cv2模塊的圖形載入、運算、轉換等相關操作技巧,需要的朋友可以參考下
    2019-04-04
  • Python中的數(shù)字類型與轉換技巧示例講解

    Python中的數(shù)字類型與轉換技巧示例講解

    這篇文章主要為大家介紹了Python中的數(shù)字類型與轉換技巧示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • python 實現(xiàn)在無序數(shù)組中找到中位數(shù)方法

    python 實現(xiàn)在無序數(shù)組中找到中位數(shù)方法

    這篇文章主要介紹了python 實現(xiàn)在無序數(shù)組中找到中位數(shù)方法,具有很好對參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python實現(xiàn)簡單掃雷游戲

    Python實現(xiàn)簡單掃雷游戲

    這篇文章主要為大家詳細介紹了Python實現(xiàn)簡單掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Python實現(xiàn)3行代碼解簡單的一元一次方程

    Python實現(xiàn)3行代碼解簡單的一元一次方程

    這篇文章主要介紹了Python實現(xiàn)3行代碼解簡單的一元一次方程,很適合Python初學者學習借鑒,需要的朋友可以參考下
    2014-08-08
  • python中正則表達式與模式匹配

    python中正則表達式與模式匹配

    在之前找工作過程中,面試時經(jīng)常被問到會不會python,懂不懂正則表達式。這篇文章主要介紹了python中正則表達式與模式匹配,需要的朋友可以參考下
    2019-05-05

最新評論