Heim  >  Artikel  >  Backend-Entwicklung  >  Einfache Implementierung des automatischen Inkrementierungsschlüsselwerts von Python+MongoDB

Einfache Implementierung des automatischen Inkrementierungsschlüsselwerts von Python+MongoDB

高洛峰
高洛峰Original
2017-02-22 11:05:431756Durchsuche

Hintergrund

Kürzlich habe ich eine Test-Toolbox geschrieben, die über ein Fehleraufzeichnungssystem verfügt, um den Hintergrund zu implementieren, und bin auf eine Frage gestoßen ist, wie man ein automatisch inkrementierendes Feld implementiert.

Es ist sehr einfach, eine herkömmliche relationale Datenbank zu implementieren. Beim Einfügen von Daten müssen Sie sich nur um die Daten kümmern, die Sie verarbeiten. und es wird automatisch die Funktion zur automatischen Inkrementierung implementieren, aber nicht relationale Datenbanken scheinen diese Funktion nicht zu haben (oder ich weiß es nicht). Baidu stellte später fest, dass es sich bei allen um MongoDB-Einstellungsmethoden handelte, die nicht meinen Wünschen entsprachen.

Lösungsideen

Baidu hat keine gute Idee gefunden, daher kann es sie nur selbst lösen. Meine Idee ist sehr einfach Felder werden sich nicht selbst vergrößern, dann erstellen Sie selbst einen Plan zur Selbststeigerung.

Ich habe festgestellt, dass die geänderte Methode in MongoDB eine $inc-Methode hat, die die automatische Inkrementierung des Typs int realisieren kann. Dann ist es ganz einfach, selbst eine Sammlung zu erstellen, und dann gibt es in dieser Sammlung nur ein int-Feld. Rufen Sie diese Sammlung einfach auf, um die ID abzurufen, und rufen Sie dann die Methode $ inc auf. Zuwachsplan erreicht.

Codeanzeige

Python ist sehr einfach zu implementieren. Python und Django sind sehr kompatibel. Der Code lautet wie folgt:

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

Nach jedem erfolgreichen Einfügen kann durch Aufrufen dieser Methode die Selbstinkrementierung realisiert werden des Ausweises.

def getBugID(self):
  """
  获取当前bug的最新编号
  :return:None
  """
  db = self.__chooseCollection(config.COLLECTION['bugID'])
  rst = db.find_one()
  return rst['bugID']

Rufen Sie diese Methode vor dem Einfügen auf, damit die ID, die bei jedem Einfügen von Daten eingefügt wird, automatisch erhöht wird.

Nachteile

Natürlich weist diese Methode immer noch Mängel auf, wenn beim Aufruf mehr Methoden verwendet werden, daher müssen Sie dies bestätigen method Gibt an, ob die Ausführung erfolgreich ist. Andernfalls handelt es sich bei der beim nächsten Mal eingefügten ID nicht um die selbst inkrementierten Daten. Jedes Mal, wenn die Methode mehr als einmal aufgerufen wird, nimmt die Leistung ab.

Andere

Wenn es einen besseren Weg gibt, dies umzusetzen, sagen Sie es mir bitte!

Die obige einfache Implementierung des sich selbst erhöhenden Schlüsselwerts von Python + MongoDB ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie die chinesische PHP-Website unterstützen.

Weitere Artikel zur einfachen Implementierung des automatischen Inkrementierungsschlüsselwerts von Python + MongoDB finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn