注意 :Mongo IDは、可能な限り一意である必要があります うまくスケーリングするために。デフォルトの
ただし、終わりのないObjectID値を不適切に見せたい場合があります(つまり、エンコーディング の後にURLに表示されます。 )。次に、適切なアトミックインクリメント戦略の使用を検討する必要があります 。
オーバーライド _idの例:
db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})
自動インクリメントシーケンス を作成する :
- カウンタコレクションを使用する :基本的に、シーケンスの最後の番号を追跡する分離されたコレクション。個人的には、findAndModify関数をsystem.jsコレクションに保存する方がまとまりがありますが、不足 バージョン管理の機能。
- オプティミスティックループ
編集:
問題 を見つけました 帆の所有者-mongoは言った:
彼は、私がこの回答で追加した最初の手法について言及しています。カウンターコレクションを使用する 。同じ号で、 lewins 回避策を示しています。