才接触NODEJS的noder一枚 用mongodb的时候那个自己生成的ID太长 感觉不怎么好使 我想知道能办法自增长么? 1.2.3.4.5.6.7…这样 开始想了个才学编程的一个方法 感觉不靠谱 不科学 所以求各位大大解答 百度谷歌很久没找到自己想要的
5 回复
我查询了一些人写的如何实现自增长ID ~ 都是跟我最开始的想法一样 ~ 添加数据的时候 去查一次获得最大ID 再加1 但是如果是高并发 多条数据同时查询的时候 获得的最大ID都是一样的 并都加1 最后导致的结果ID重复 求解…
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/