mongoose如何自定义ID(类似SQLSERVER) id自增长
发布于 11 年前 作者 troublemaker 13107 次浏览 最后一次编辑是 8 年前

才接触NODEJS的noder一枚 用mongodb的时候那个自己生成的ID太长 感觉不怎么好使 我想知道能办法自增长么? 1.2.3.4.5.6.7…这样 开始想了个才学编程的一个方法 感觉不靠谱 不科学 所以求各位大大解答 百度谷歌很久没找到自己想要的

5 回复

我查询了一些人写的如何实现自增长ID ~ 都是跟我最开始的想法一样 ~ 添加数据的时候 去查一次获得最大ID 再加1 但是如果是高并发 多条数据同时查询的时候 获得的最大ID都是一样的 并都加1 最后导致的结果ID重复 求解…

mango不适合做这样的操作

人工置顶 = = ~ 求解丫 各位大大

mongoose official document already mention about this. You can choose a plugin of mongoose, http://plugins.mongoosejs.com/

官方给出一个方案,是使用findAndmodify,不知道会不会产生重复的ID。

function getNextSequence(name) {
   var ret = db.counters.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            new: true
          }
   );

   return ret.seq;
}

http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/

回到顶部