美文网首页
pymongo + redis 实现 "_id" 的自增

pymongo + redis 实现 "_id" 的自增

作者: 程序里的小仙女 | 来源:发表于2020-11-18 15:25 被阅读0次

    由于mongo 没有像mysql 一样的自增字段来最为主键id,这里利用redis hash里的 hincrby 方法实现,mongo的"_id" 能够像mysql一样用正整数唯一且自增:

    1.redis 的连接池
    # 连接池
    # 把他做成单例,写在一个文件里面,import它
    import redis
    import os
    import sys
    
    curPath=os.path.abspath(os.path.dirname(__file__))
    rootPath=os.path.split(curPath)[0]
    sys.path.append(os.path.split(rootPath)[0])
    
    # 拿到一个redis的连接池
    from config import REDIS_HOST, REDIS_PORT, REDIS_DB, REDIS_PASSWORD
    
    Redis_Pool=redis.ConnectionPool(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB,password=REDIS_PASSWORD, max_connections=10)
    
    2. 实现自增"_id"
    from redis import StrictRedis
    from db.Redis_pool import Redis_Pool
    redis_url=StrictRedis(connection_pool=Redis_Pool)
     # 主键id,自增id 利用hash的hincrby来实现自增id
    metroinfo ={}
    inc_num=redis_url.hincrby("inc_num", "a", )   # 每次返回一个整数,逐渐增加1
    print(inc_num)
    metroinfo["_id"]=inc_num
    print(metroinfo)
    

    相关文章

      网友评论

          本文标题:pymongo + redis 实现 "_id" 的自增

          本文链接:https://www.haomeiwen.com/subject/sweciktx.html