[TOC] ## 概述 默认为12字节的唯一索引,要设置自增id需要一个记录自增值的表 ### 实例 ## 创建记录自增值的表 ``` db.createCollection("counters") //记录一个 productid 的自增,设置0,则表的第一个值就是1 db.counters.insert({_id:"productid",sequence_value:0}) //记录一个user_id 的自增 db.counters.insert({_id:"user_id",sequence_value:0}) ``` ### 创建函数 ``` function getNextSequenceValue(sequenceName){ var sequenceDocument = db.counters.findAndModify( { query:{_id: sequenceName }, update: {$inc:{sequence_value:1}}, "new":true }); return sequenceDocument.sequence_value; } ``` ### 添加数据 products 集合 ``` db.products.insert({ "_id":getNextSequenceValue("productid"), "product_name":"Apple iPhone", "category":"mobiles"}) db.products.insert({ "_id":getNextSequenceValue("productid"), "product_name":"Samsung S3", "category":"mobiles"}) ``` userid集合 ``` db.users.insert({ "_id":getNextSequenceValue("userid"), "username":"cc", "age":2}) db.users.insert({ "_id":getNextSequenceValue("userid"), "username":"bb", "age":1}) ```