Node.js + Mongoose で auto increment の実装をご紹介します。
/**
* 新規登録時に使う code を取得する
*
* @param {Function} callback(error, code)
**/
var getNewCode = function (callback){
var new_code = 1;
Books.findOne({}, {}, {
sort: {
code: -1
}
}, function(error, doc){
if (error) {
console.error(error.stack || error);
return callback(error);
}
if (!doc || !doc.code) {
return callback(null, new_code);
}
new_code = doc.code + 1;
return callback(null, new_code);
});
};
本当は参考記事のように別途、モデルでシーケンシャルな code (id) を管理した方がいいのでしょうけど、そこまでは必要ないかなと用途で書きました。
連番を管理するためのモデルを作るとデータも線形的に増えるし、メンテも面倒になりますしね。