`
2014马年
  • 浏览: 122115 次
  • 性别: Icon_minigender_1
  • 来自: 晋中
社区版块
存档分类
最新评论

pymong 实现自增长id

阅读更多

1.解决方案官网提供的

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

大概意思就是新建一个表,专门存最大userid。每次取一个id,就+1,这样也不会重复

 

2.pymongo 实现

代码如下,注意,第一次是返回{},然后是 1-2-3...

 

print db.usercounter.find_and_modify({"_id": "users"}, update={ "$inc": {'count': 1}},upsert=True)

得到的id就可以用了,而且也不用担心多线程的问题

不过这一个用户表要维护两个表,是有点不方便。

差不多用就行了,为一个问题浪费太多时间不值得。

 

3.关于find_and_modify 方法:

http://api.mongodb.org/python/current/api/pymongo/collection.html

find_and_modify(query={}update=Noneupsert=Falsesort=Nonefull_response=False**kwargs)

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    mysql实现char类型主键自增长

    本文将深入探讨如何在MySQL中利用触发器实现CHAR类型主键的自增长功能,这将为我们提供一种灵活且独特的主键生成策略。 ### MySQL中CHAR类型主键自增长的原理 在传统的数据库设计中,我们通常使用整型数据类型作为...

    mysql的插入问题 怎么获得自动增长的ID

    1. **理解自动增长ID的工作原理** 2. **在删除记录后重新插入时ID的变化情况** 3. **不同存储引擎(如MyISAM与InnoDB)下自动增长ID的行为差异** 4. **通过Java程序使用JDBC获取刚插入记录的ID** #### 一、理解自动...

    OracleID自增长

    ### Oracle ID自增长实现方法详解 #### 一、引言 在使用Oracle数据库进行软件开发时,经常会遇到需要为表中的记录自动生成唯一标识符(ID)的需求。而在Oracle数据库中,与MySQL不同的是,它并没有提供直接的自...

    设置db2 字段自增长

    在DB2中,实现自增长有多种方式,除了`GENERATED ALWAYS AS IDENTITY`特性外,还可以使用`Sequence`。这两种方法各有优缺点: ##### 4.1 Identity - 优点:使用简单,每个会话只允许一个Identity,避免了并发问题。...

    分布式自增长ID-雪花算法

    分布式自增长ID-雪花算法

    oracle中用序列实现自动增长值

    在Oracle数据库系统中,与SQL Server中的`IDENTITY`特性类似,我们可以通过使用序列(Sequences)来实现字段的自动增长值。序列是一种特殊的数据库对象,它可以生成一系列有序的数值,通常用于为表的主键字段提供...

    oracle主键自动增长

    这里直接指定了`ID`字段的值,如果想要实现自动增长,应该使用前面提到的序列和触发器方案。 #### 五、总结 本文详细介绍了如何在Oracle数据库中实现主键的自动增长功能,主要包括了序列和触发器的使用方法。通过...

    oracle设置主外键即主键序列自动增长

    由于 `groupinfo_id` 是主键并启用了自动增长,因此在插入数据时不需要指定 `groupinfo_id` 的值,系统会自动为其分配一个唯一的ID。 ##### 2. 查询数据 ```sql SELECT * FROM groupinfo; ``` 执行查询后,可以查看...

    oracle 触发器方式实现行ID自增加

    这种实现方法确保了即使在多用户环境中,行ID也能保持唯一且顺序增长。 总结起来,Oracle数据库通过触发器和序列对象相结合,能有效实现行ID的自增加功能。这种技术在需要自动维护唯一标识符的场景下非常实用,例如...

    java快速ID自增器

    1. **原子类**:Java的`AtomicLong`类是线程安全的,可以用于实现自增ID。每次获取新ID时,只需要调用`incrementAndGet()`方法,该方法会原子性地增加当前值并返回新的值。 2. **数据库序列**:如果使用的是支持...

    在hibernate中实现oracle的自动增长

    本文将深入探讨如何在Hibernate中实现Oracle数据库的自动增长特性,这一功能对于确保数据表中的主键唯一性至关重要。 ### Oracle数据库的自动增长机制 Oracle数据库提供了强大的序列(sequence)功能来支持自动增长...

    oracle中的ID号实现自增长的方法

    主要介绍了oracle中的ID号如何实现自增长,利用序列产生主键值,需要的朋友可以参考下

    SQL Server中实现字段值自动增长且连续.pdf

    本文将介绍在SQL Server数据库中实现字段值自动增长且连续的两种方法,并详细阐述各自的实现方式、优缺点及适用场景。 首先,SQL Server中实现字段值自动增长的传统方法是通过定义字段的identity属性。Identity属性...

    编号自动增长

    假设我们需要创建一张名为`Orders`的表,并为它添加两个字段:`OrderID`(作为主键,用于存储自增长的编号)和`CustomerName`(用于存储客户名称)。 ```sql CREATE TABLE Orders ( OrderID int NOT NULL IDENTITY...

    oracle设置主键自动增长

    为了实现主键自动增长,我们需要先创建一个序列。序列是一种用于生成一系列数值的对象,可以用于自动为主键生成唯一的值。 ```sql CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次增加的值 START WITH 1 -- ...

    IdWorker(1).zip_ropejst_分布式自增长ID

    总结起来,`IdWorker`是一个强大的分布式ID生成器,它通过结合时间戳、数据中心ID和工作节点ID,实现了全局唯一且有序的ID生成。对于大型分布式系统来说,`IdWorker`提供了一种简洁、高效的解决方案。然而,具体到`...

    mysql取得自动增长的主键值

    - **实现方式:** 在创建表时指定某列具有`AUTO_INCREMENT`属性,并设置为主键。 2. **插入记录并获取自增ID:** - **标准方法:** 使用`INSERT`语句插入数据后,可以通过`LAST_INSERT_ID()`函数或`...

    Oracle与Mysql自动增长列(id)的区别

    Oracle 和 MySQL 在处理自动增长列(通常用于主键ID)方面有着显著的差异。自动增长列主要用于确保每个新插入的行都有一个唯一的标识符。在MySQL中,这个过程相对直接,而在Oracle中则需要借助序列(sequence)来实现...

    oracle自增长与sqlserver一样好用

    本文将深入探讨Oracle中实现自增长序列(Sequence)与SQL Server中的自增列(Identity Column)的相似之处,以及如何在Oracle中通过序列和触发器来模拟SQL Server的自增列特性。 ### Oracle中的自增长序列...

Global site tag (gtag.js) - Google Analytics