MongoDB 如何实现 id自动增长?

MongoDB 如何实现 id自动增长?

苍暮颜 发布于 2021-11-29 字数 171 浏览 703 回复 11

最近要需要给MongoDB里 写入数据,避免不了让id 自动增长,但MongoDB 是不支持的。

目前没有好的实现方法,不知大家是如何做的? 还请帮助费个答复喽。

谢谢!

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

清晨说ぺ晚安 2021-12-01 11 楼

可以考虑使用 UUID 的做法

看透却不说透 2021-12-01 10 楼

一般不建议这样使用。如果一定需要。

那就自己设计一个。mongodb的每个数据库都有一个sysytem.js的collection。里面可以设置全局变量。假设用auto_id代表自增长初始为0

db.system.js.insert({"_id" : "auto_id", "value" : auto_id})

在你插入一条数据后auto_id+=1

db.system.js.insert({"_id" : "auto_id", "value" : auto_id})

就算你删除了n条数据auto_id还是你最后插入那条数据后设置的值。

 

提供一个思路仅供参考。

可是我不能没有你 2021-12-01 8 楼

自增:我们用的是,另建一个表用来维护这个自增长ID,另外一张表里面的一个字段不停的自+1,然后做为这里新的ID。

风透绣罗衣 2021-12-01 7 楼

你这种方式要出问题 1 单机多连接下会出问题 2 多级下会出问题。

策马西风 2021-12-01 6 楼

自增:我们用的是,另建一个表用来维护这个自增长ID,另外一张表里面的一个字段不停的自+1,然后做为这里新的ID。

无边思念无边月 2021-12-01 5 楼

一般不建议这样使用。如果一定需要。

那就自己设计一个。mongodb的每个数据库都有一个sysytem.js的collection。里面可以设置全局变量。假设用auto_id代表自增长初始为0

db.system.js.insert({"_id" : "auto_id", "value" : auto_id})

在你插入一条数据后auto_id+=1

db.system.js.insert({"_id" : "auto_id", "value" : auto_id})

就算你删除了n条数据auto_id还是你最后插入那条数据后设置的值。

 

提供一个思路仅供参考。

 

 

 

 

多彩岁月 2021-12-01 4 楼

是用自己的id,不是用默认的_id ,因为默认的基本不能满足。

比如我想 插入一条记录:

原来: uid :1  name:user1

插入后:uid:2  name:user2  

这个uid 为2 的怎么实现。因为mysql 下这个是提供的。在这没法实现。

 

陌上芳菲 2021-12-01 3 楼

mongoDB 里默认有个自增的 _id 不明白你想问什么

眼眸 2021-12-01 2 楼

id自动增长什么意思,默认MongoDB的id 是ascending的啊

或者你可以明确的自己来维护id