[Node.js] Mongoose で簡易的な auto increment を実装する
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) を管理した方がいいのでしょうけど、そこまでは必要ないかなと用途で書きました。
連番を管理するためのモデルを作るとデータも線形的に増えるし、メンテも面倒になりますしね。