1. 公式 Web サイトで提供される解決策
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
おそらく、最大のユーザー ID を保存するための新しいテーブルを作成することを意味します。 。 ID が取得されるたびに +1 されるため、重複はありません
2.pymongo の実装
コードは次のとおりです。最初に {} を返し、その後は 1-2-3 を返します。 ...
Python コード
print db.usercounter.find_and_modify({"_id": "users"}, update={ "$inc": {'count': 1}},upsert=True)
IDを取得するだけで使用でき、マルチスレッドを気にする必要はありません。ただし、1つのユーザーテーブルに対して2つのテーブルを維持するのは少し不便です。
これでほぼ十分です。1 つの問題にあまり時間を費やす価値はありません。
3. find_and_modify メソッドについて:
http://api.mongodb.org/python/current/api/pymongo/collection.html
find_and_modify(query={}, update=None, upsert=False) 、sort=なし、full_response=False、**kwargs)