通常、MongoDBでは、自動インクリメントパターンを使用しません。これは、ドキュメントの数が多いデータベースではスケーリングされないためです。ただし、別のカウンターコレクションを使用して、最後に使用された数列を追跡することで、これを行うことができます。
db.counters.insert(
{
_id: "userid",
seq: 0
}
)
次に、シーケンス内の次の番号を返す関数を作成できます。
function getNextSequence(name) {
var ret = db.counters.findAndModify(
{
query: { _id: name },
update: { $inc: { seq: 1 } },
new: true
}
);