MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Inkrementelles Feld für die vorhandene Sammlung

Nun, unter Verwendung des von Ihnen erwähnten Links , würde ich lieber den Ansatz zur Sammlung von Zählern .

Der Ansatz zum Sammeln von Zählern hat einige Nachteile, darunter :

  • Es werden immer mehrere Anfragen generiert (zwei):eine, um die Sequenznummer zu erhalten, eine andere, um die Einfügung unter Verwendung der ID vorzunehmen, die Sie über die Sequenz erhalten haben,
  • Wenn Sie die Sharding-Funktionen von mongodb verwenden, wird ein Dokument, das für die Speicherung eines Zählerstands verantwortlich ist, möglicherweise häufig verwendet und erreicht jedes Mal denselben Server.

Es sollte jedoch für die meisten Anwendungen geeignet sein.

Der von Ihnen erwähnte Ansatz ("the optimistic Schleife" ) sollte IMO nicht brechen, und ich vermute nicht, warum Sie ein Problem damit haben. Allerdings würde ich es nicht empfehlen. Was passiert, wenn Sie den Code auf mehreren Mongo-Clients ausführen, wenn einer viel Latenz hat und andere weiterhin IDs nehmen? Ich möchte nicht auf diese Art von Problem stoßen ... Außerdem gibt es mindestens zwei Anfragen pro erfolgreicher Operation, aber keine maximale Anzahl von Wiederholungen vor einem Erfolg ...