没有合适的资源?快使用搜索试试~ 我知道了~
背景 最近在写一个测试工具箱,里面有一个bug记录系统,因为后台我是用Django和MongoDB来实现的,就遇到了一个问题,要如何实现一个自增的字段。 传统的关系型数据库要实现起来是非常容易,只要直接设置一个自增字段就行了,插入数据时不用管这个键值,只管自己处理的数据就行了,会自动实现自增的功能,但是非关系型数据库好像没有这个功能(或者我不知道)。百度之后发现都是MongoDB的设置方法,并不是我想要的。 解决思路 百度没有找到好的思路,那就只能自己解决了,我的想法很简单,字段不会自增,那么就自己造一个自增的方案。 我发现在MongoDB修改的方法有一个$inc的方法.可以实现int类型的自
资源详情
资源评论
资源推荐
Python+MongoDB自增键值的简单实现自增键值的简单实现
背景背景
最近在写一个测试工具箱,里面有一个bug记录系统,因为后台我是用Django和MongoDB来实现的,就遇到了一个问题,要
如何实现一个自增的字段。
传统的关系型数据库要实现起来是非常容易,只要直接设置一个自增字段就行了,插入数据时不用管这个键值,只管自己处理
的数据就行了,会自动实现自增的功能,但是非关系型数据库好像没有这个功能(或者我不知道)。百度之后发现都是
MongoDB的设置方法,并不是我想要的。
解决思路解决思路
百度没有找到好的思路,那就只能自己解决了,我的想法很简单,字段不会自增,那么就自己造一个自增的方案。
我发现在MongoDB修改的方法有一个$inc的方法.可以实现int类型的自增。那么就非常简单了,自己建一个collection,然后这
个collection中只有一个int的字段,每次插入数据时来这个collection取ID就行了,然后再调用一下$inc方法,那么就实现了自
动自增的方案。
代码展示代码展示
Python实现起来还是非常简单的Python和Django非常契合。代码如下:
def bugPlus(self):
"""
bugID自增
:return:True
"""
db = self.__chooseCollection(config.COLLECTION['bugID'])
db.update_one({"bugID": self.getBugID()}, {"$inc": {"bugID": 1}})
return True
每次插入成功后,调用这个方法就可以实现ID的自增。
def getBugID(self):
"""
获取当前bug的最新编号
:return:None
"""
db = self.__chooseCollection(config.COLLECTION['bugID'])
rst = db.find_one()
return rst['bugID']
在插入之前,调用这个方法,这样每次插入数据时插入的ID就是实现自增的ID。
缺点缺点
当然,这种方式还是有缺点的,调用的时候多使用了方法,因此需要确认方法是否执行成功,否则会导致下次插入的ID不是自
增后的数据。每次多调了一次方法,会导致性能下降。
其他其他
如果有更好的实现方式,请告诉我!
以上这篇Python+MongoDB自增键值的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多
多支持软件开发网。
您可能感兴趣的文章您可能感兴趣的文章:Mongodb自增id实现方法php实现Mongodb自定义方式生成自增ID的方法
weixin_38656400
- 粉丝: 2
- 资源: 918
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0