incUtil.js 672 B

12345678910111213141516171819202122
  1. let db = require('../database/index');
  2. let _ = require('lodash');
  3. /**
  4. * 获取自增Id
  5. *
  6. * @param {Object} query 查询字段对象
  7. * @return {Integer} 自增Id
  8. * @return {Object} promise
  9. */
  10. async function getIncId (query) {
  11. // 新版文档参数new为returnNewDoc, 返回更改后的对象
  12. let result = await db.counter.findOneAndUpdate(query, {$inc: {seq: _.random(10, 100)}}, {upsert: true, new: true, lean: true});
  13. if (!result) {
  14. // 随机返回一个数,防止错误
  15. return _.random(10000, 100000);
  16. } else {
  17. return result.seq;
  18. }
  19. }
  20. module.exports = { getIncId };